Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
968352cb6c | ||
|
|
355f860387 | ||
|
|
083d82c28b | ||
|
|
046c630abf | ||
|
|
d2bfb9a55f | ||
|
|
fccf57e9e4 | ||
|
|
e1a68f75f7 | ||
|
|
9d9cc7b4ab | ||
|
|
d1cde75a66 | ||
|
|
bbc81d8dd0 | ||
|
|
0cdc04bfb5 | ||
|
|
367f804a49 | ||
|
|
9193a79b9a | ||
|
|
31366d961f | ||
|
|
2dac38560b | ||
|
|
db2720ab7b | ||
|
|
6d6b9e81ff | ||
|
|
f9ddd7bacd | ||
|
|
3773432eb5 |
22
CHANGELOG.md
22
CHANGELOG.md
@@ -1,3 +1,25 @@
|
||||
## [0.27.0](https://github.com/stonith404/pingvin-share/compare/v0.26.0...v0.27.0) (2024-07-11)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add logs for successful registration, successful login and failed login ([d2bfb9a](https://github.com/stonith404/pingvin-share/commit/d2bfb9a55fdad6a05377b8552471cf1151304c90))
|
||||
* **auth:** Allow to hide username / password login form when OAuth is enabled ([#518](https://github.com/stonith404/pingvin-share/issues/518)) ([e1a68f7](https://github.com/stonith404/pingvin-share/commit/e1a68f75f7b034f1ef9e45f26de584f13e355589)), closes [#489](https://github.com/stonith404/pingvin-share/issues/489)
|
||||
* **smtp:** allow unauthorized mail server certificates ([#525](https://github.com/stonith404/pingvin-share/issues/525)) ([083d82c](https://github.com/stonith404/pingvin-share/commit/083d82c28b835c178f076e89ef8f5885e8ea31cb))
|
||||
|
||||
## [0.26.0](https://github.com/stonith404/pingvin-share/compare/v0.25.0...v0.26.0) (2024-07-03)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **backend:** Make session duration configurable ([#512](https://github.com/stonith404/pingvin-share/issues/512)) ([367f804](https://github.com/stonith404/pingvin-share/commit/367f804a494c85b4caf879d51982339fb6b86ba1)), closes [#507](https://github.com/stonith404/pingvin-share/issues/507)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **oauth:** provider username is ignored when signing up using OAuth ([#511](https://github.com/stonith404/pingvin-share/issues/511)) ([31366d9](https://github.com/stonith404/pingvin-share/commit/31366d961f5827c200038b65ec9de5d4ddc8b898)), closes [#505](https://github.com/stonith404/pingvin-share/issues/505)
|
||||
* set max age of access token cookie to 15 minutes ([2dac385](https://github.com/stonith404/pingvin-share/commit/2dac38560b6c54b6e7676dcd4682bfa57973292f))
|
||||
|
||||
## [0.25.0](https://github.com/stonith404/pingvin-share/compare/v0.24.2...v0.25.0) (2024-06-10)
|
||||
|
||||
|
||||
|
||||
1897
backend/package-lock.json
generated
1897
backend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pingvin-share-backend",
|
||||
"version": "0.25.0",
|
||||
"version": "0.27.0",
|
||||
"scripts": {
|
||||
"build": "nest build",
|
||||
"dev": "cross-env NODE_ENV=development nest start --watch",
|
||||
@@ -14,20 +14,20 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/cache-manager": "^2.2.2",
|
||||
"@nestjs/common": "^10.3.8",
|
||||
"@nestjs/common": "^10.3.9",
|
||||
"@nestjs/config": "^3.2.2",
|
||||
"@nestjs/core": "^10.3.8",
|
||||
"@nestjs/core": "^10.3.9",
|
||||
"@nestjs/jwt": "^10.2.0",
|
||||
"@nestjs/passport": "^10.0.3",
|
||||
"@nestjs/platform-express": "^10.3.8",
|
||||
"@nestjs/schedule": "^3.0.4",
|
||||
"@nestjs/platform-express": "^10.3.9",
|
||||
"@nestjs/schedule": "^4.0.2",
|
||||
"@nestjs/swagger": "^7.3.1",
|
||||
"@nestjs/throttler": "^4.2.1",
|
||||
"@prisma/client": "^5.14.0",
|
||||
"archiver": "^5.3.2",
|
||||
"argon2": "^0.40.1",
|
||||
"@nestjs/throttler": "^5.2.0",
|
||||
"@prisma/client": "^5.16.1",
|
||||
"archiver": "^7.0.1",
|
||||
"argon2": "^0.40.3",
|
||||
"body-parser": "^1.20.2",
|
||||
"cache-manager": "^5.5.2",
|
||||
"cache-manager": "^5.6.1",
|
||||
"clamscan": "^2.2.1",
|
||||
"class-transformer": "^0.5.1",
|
||||
"class-validator": "^0.14.1",
|
||||
@@ -36,50 +36,48 @@
|
||||
"mime-types": "^2.1.35",
|
||||
"moment": "^2.30.1",
|
||||
"nanoid": "^3.3.7",
|
||||
"node-fetch": "^2.7.0",
|
||||
"nodemailer": "^6.9.13",
|
||||
"nodemailer": "^6.9.14",
|
||||
"otplib": "^12.0.1",
|
||||
"passport": "^0.7.0",
|
||||
"passport-jwt": "^4.0.1",
|
||||
"passport-local": "^1.0.0",
|
||||
"qrcode-svg": "^1.1.0",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"reflect-metadata": "^0.2.2",
|
||||
"rimraf": "^5.0.7",
|
||||
"rxjs": "^7.8.1",
|
||||
"sharp": "^0.32.4",
|
||||
"sharp": "^0.33.4",
|
||||
"ts-node": "^10.9.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nestjs/cli": "^10.3.2",
|
||||
"@nestjs/schematics": "^10.1.1",
|
||||
"@nestjs/testing": "^10.3.8",
|
||||
"@types/archiver": "^5.3.4",
|
||||
"@nestjs/testing": "^10.3.9",
|
||||
"@types/archiver": "^6.0.2",
|
||||
"@types/clamscan": "^2.0.8",
|
||||
"@types/cookie-parser": "^1.4.7",
|
||||
"@types/cron": "^2.0.1",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/mime-types": "^2.1.4",
|
||||
"@types/multer": "^1.4.11",
|
||||
"@types/node": "^20.12.12",
|
||||
"@types/node-fetch": "^2.6.11",
|
||||
"@types/node": "^20.14.9",
|
||||
"@types/nodemailer": "^6.4.15",
|
||||
"@types/passport-jwt": "^3.0.13",
|
||||
"@types/passport-jwt": "^4.0.1",
|
||||
"@types/qrcode-svg": "^1.1.4",
|
||||
"@types/sharp": "^0.31.1",
|
||||
"@types/supertest": "^2.0.16",
|
||||
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
||||
"@typescript-eslint/parser": "^6.21.0",
|
||||
"@types/supertest": "^6.0.2",
|
||||
"@typescript-eslint/eslint-plugin": "^7.14.1",
|
||||
"@typescript-eslint/parser": "^7.14.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-prettier": "^8.10.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"newman": "^6.1.2",
|
||||
"prettier": "^3.2.5",
|
||||
"prisma": "^5.14.0",
|
||||
"newman": "^6.1.3",
|
||||
"prettier": "^3.3.2",
|
||||
"prisma": "^5.16.1",
|
||||
"source-map-support": "^0.5.21",
|
||||
"ts-loader": "^9.5.1",
|
||||
"tsconfig-paths": "4.2.0",
|
||||
"typescript": "^5.4.5",
|
||||
"typescript": "^5.5.2",
|
||||
"wait-on": "^7.2.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,11 @@ const configVariables: ConfigVariables = {
|
||||
defaultValue: "true",
|
||||
secret: false,
|
||||
},
|
||||
sessionDuration: {
|
||||
type: "number",
|
||||
defaultValue: "2160",
|
||||
secret: false,
|
||||
},
|
||||
},
|
||||
share: {
|
||||
allowRegistration: {
|
||||
@@ -66,7 +71,6 @@ const configVariables: ConfigVariables = {
|
||||
enableShareEmailRecipients: {
|
||||
type: "boolean",
|
||||
defaultValue: "false",
|
||||
|
||||
secret: false,
|
||||
},
|
||||
shareRecipientsSubject: {
|
||||
@@ -112,6 +116,12 @@ const configVariables: ConfigVariables = {
|
||||
defaultValue: "false",
|
||||
secret: false,
|
||||
},
|
||||
allowUnauthorizedCertificates: {
|
||||
type: "boolean",
|
||||
defaultValue: "false",
|
||||
|
||||
secret: false,
|
||||
},
|
||||
host: {
|
||||
type: "string",
|
||||
defaultValue: "",
|
||||
@@ -143,6 +153,11 @@ const configVariables: ConfigVariables = {
|
||||
type: "boolean",
|
||||
defaultValue: "true",
|
||||
},
|
||||
"disablePassword": {
|
||||
type: "boolean",
|
||||
defaultValue: "false",
|
||||
secret: false,
|
||||
},
|
||||
"github-enabled": {
|
||||
type: "boolean",
|
||||
defaultValue: "false",
|
||||
@@ -224,7 +239,7 @@ const configVariables: ConfigVariables = {
|
||||
defaultValue: "",
|
||||
obscured: true,
|
||||
},
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
type ConfigVariables = {
|
||||
@@ -276,12 +291,15 @@ async function seedConfigVariables() {
|
||||
|
||||
async function migrateConfigVariables() {
|
||||
const existingConfigVariables = await prisma.config.findMany();
|
||||
const orderMap: { [category: string]: number } = {};
|
||||
|
||||
for (const existingConfigVariable of existingConfigVariables) {
|
||||
const configVariable =
|
||||
configVariables[existingConfigVariable.category]?.[
|
||||
existingConfigVariable.name
|
||||
existingConfigVariable.name
|
||||
];
|
||||
|
||||
// Delete the config variable if it doesn't exist in the seed
|
||||
if (!configVariable) {
|
||||
await prisma.config.delete({
|
||||
where: {
|
||||
@@ -292,15 +310,11 @@ async function migrateConfigVariables() {
|
||||
},
|
||||
});
|
||||
|
||||
// Update the config variable if the metadata changed
|
||||
} else if (
|
||||
JSON.stringify({
|
||||
...configVariable,
|
||||
name: existingConfigVariable.name,
|
||||
category: existingConfigVariable.category,
|
||||
value: existingConfigVariable.value,
|
||||
}) != JSON.stringify(existingConfigVariable)
|
||||
) {
|
||||
// Update the config variable if it exists in the seed
|
||||
} else {
|
||||
const variableOrder = Object.keys(
|
||||
configVariables[existingConfigVariable.category]
|
||||
).indexOf(existingConfigVariable.name);
|
||||
await prisma.config.update({
|
||||
where: {
|
||||
name_category: {
|
||||
@@ -313,8 +327,10 @@ async function migrateConfigVariables() {
|
||||
name: existingConfigVariable.name,
|
||||
category: existingConfigVariable.category,
|
||||
value: existingConfigVariable.value,
|
||||
order: variableOrder,
|
||||
},
|
||||
});
|
||||
orderMap[existingConfigVariable.category] = variableOrder + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,20 +3,20 @@ import { Module } from "@nestjs/common";
|
||||
import { ScheduleModule } from "@nestjs/schedule";
|
||||
import { AuthModule } from "./auth/auth.module";
|
||||
|
||||
import { CacheModule } from "@nestjs/cache-manager";
|
||||
import { APP_GUARD } from "@nestjs/core";
|
||||
import { ThrottlerGuard, ThrottlerModule } from "@nestjs/throttler";
|
||||
import { AppController } from "./app.controller";
|
||||
import { ClamScanModule } from "./clamscan/clamscan.module";
|
||||
import { ConfigModule } from "./config/config.module";
|
||||
import { EmailModule } from "./email/email.module";
|
||||
import { FileModule } from "./file/file.module";
|
||||
import { JobsModule } from "./jobs/jobs.module";
|
||||
import { OAuthModule } from "./oauth/oauth.module";
|
||||
import { PrismaModule } from "./prisma/prisma.module";
|
||||
import { ReverseShareModule } from "./reverseShare/reverseShare.module";
|
||||
import { ShareModule } from "./share/share.module";
|
||||
import { UserModule } from "./user/user.module";
|
||||
import { ClamScanModule } from "./clamscan/clamscan.module";
|
||||
import { ReverseShareModule } from "./reverseShare/reverseShare.module";
|
||||
import { AppController } from "./app.controller";
|
||||
import { OAuthModule } from "./oauth/oauth.module";
|
||||
import { CacheModule } from "@nestjs/cache-manager";
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@@ -28,10 +28,12 @@ import { CacheModule } from "@nestjs/cache-manager";
|
||||
ConfigModule,
|
||||
JobsModule,
|
||||
UserModule,
|
||||
ThrottlerModule.forRoot({
|
||||
ttl: 60,
|
||||
limit: 100,
|
||||
}),
|
||||
ThrottlerModule.forRoot([
|
||||
{
|
||||
ttl: 60,
|
||||
limit: 100,
|
||||
},
|
||||
]),
|
||||
ScheduleModule.forRoot(),
|
||||
ClamScanModule,
|
||||
ReverseShareModule,
|
||||
|
||||
@@ -37,15 +37,21 @@ export class AuthController {
|
||||
) {}
|
||||
|
||||
@Post("signUp")
|
||||
@Throttle(10, 5 * 60)
|
||||
@Throttle({
|
||||
default: {
|
||||
limit: 20,
|
||||
ttl: 5 * 60,
|
||||
},
|
||||
})
|
||||
async signUp(
|
||||
@Body() dto: AuthRegisterDTO,
|
||||
@Req() { ip }: Request,
|
||||
@Res({ passthrough: true }) response: Response,
|
||||
) {
|
||||
if (!this.config.get("share.allowRegistration"))
|
||||
throw new ForbiddenException("Registration is not allowed");
|
||||
|
||||
const result = await this.authService.signUp(dto);
|
||||
const result = await this.authService.signUp(dto, ip);
|
||||
|
||||
this.authService.addTokensToResponse(
|
||||
response,
|
||||
@@ -57,13 +63,19 @@ export class AuthController {
|
||||
}
|
||||
|
||||
@Post("signIn")
|
||||
@Throttle(10, 5 * 60)
|
||||
@Throttle({
|
||||
default: {
|
||||
limit: 20,
|
||||
ttl: 5 * 60,
|
||||
},
|
||||
})
|
||||
@HttpCode(200)
|
||||
async signIn(
|
||||
@Body() dto: AuthSignInDTO,
|
||||
@Req() { ip }: Request,
|
||||
@Res({ passthrough: true }) response: Response,
|
||||
) {
|
||||
const result = await this.authService.signIn(dto);
|
||||
const result = await this.authService.signIn(dto, ip);
|
||||
|
||||
if (result.accessToken && result.refreshToken) {
|
||||
this.authService.addTokensToResponse(
|
||||
@@ -77,7 +89,12 @@ export class AuthController {
|
||||
}
|
||||
|
||||
@Post("signIn/totp")
|
||||
@Throttle(10, 5 * 60)
|
||||
@Throttle({
|
||||
default: {
|
||||
limit: 20,
|
||||
ttl: 5 * 60,
|
||||
},
|
||||
})
|
||||
@HttpCode(200)
|
||||
async signInTotp(
|
||||
@Body() dto: AuthSignInTotpDTO,
|
||||
@@ -95,14 +112,24 @@ export class AuthController {
|
||||
}
|
||||
|
||||
@Post("resetPassword/:email")
|
||||
@Throttle(5, 5 * 60)
|
||||
@Throttle({
|
||||
default: {
|
||||
limit: 20,
|
||||
ttl: 5 * 60,
|
||||
},
|
||||
})
|
||||
@HttpCode(202)
|
||||
async requestResetPassword(@Param("email") email: string) {
|
||||
this.authService.requestResetPassword(email);
|
||||
}
|
||||
|
||||
@Post("resetPassword")
|
||||
@Throttle(5, 5 * 60)
|
||||
@Throttle({
|
||||
default: {
|
||||
limit: 20,
|
||||
ttl: 5 * 60,
|
||||
},
|
||||
})
|
||||
@HttpCode(204)
|
||||
async resetPassword(@Body() dto: ResetPasswordDTO) {
|
||||
return await this.authService.resetPassword(dto.token, dto.password);
|
||||
|
||||
@@ -2,6 +2,7 @@ import {
|
||||
BadRequestException,
|
||||
ForbiddenException,
|
||||
Injectable,
|
||||
Logger,
|
||||
UnauthorizedException,
|
||||
} from "@nestjs/common";
|
||||
import { JwtService } from "@nestjs/jwt";
|
||||
@@ -24,8 +25,9 @@ export class AuthService {
|
||||
private config: ConfigService,
|
||||
private emailService: EmailService,
|
||||
) {}
|
||||
private readonly logger = new Logger(AuthService.name);
|
||||
|
||||
async signUp(dto: AuthRegisterDTO) {
|
||||
async signUp(dto: AuthRegisterDTO, ip: string) {
|
||||
const isFirstUser = (await this.prisma.user.count()) == 0;
|
||||
|
||||
const hash = dto.password ? await argon.hash(dto.password) : null;
|
||||
@@ -44,6 +46,7 @@ export class AuthService {
|
||||
);
|
||||
const accessToken = await this.createAccessToken(user, refreshTokenId);
|
||||
|
||||
this.logger.log(`User ${user.email} signed up from IP ${ip}`);
|
||||
return { accessToken, refreshToken, user };
|
||||
} catch (e) {
|
||||
if (e instanceof PrismaClientKnownRequestError) {
|
||||
@@ -57,19 +60,27 @@ export class AuthService {
|
||||
}
|
||||
}
|
||||
|
||||
async signIn(dto: AuthSignInDTO) {
|
||||
async signIn(dto: AuthSignInDTO, ip: string) {
|
||||
if (!dto.email && !dto.username)
|
||||
throw new BadRequestException("Email or username is required");
|
||||
|
||||
if (this.config.get("oauth.disablePassword"))
|
||||
throw new ForbiddenException("Password sign in is disabled");
|
||||
|
||||
const user = await this.prisma.user.findFirst({
|
||||
where: {
|
||||
OR: [{ email: dto.email }, { username: dto.username }],
|
||||
},
|
||||
});
|
||||
|
||||
if (!user || !(await argon.verify(user.password, dto.password)))
|
||||
if (!user || !(await argon.verify(user.password, dto.password))) {
|
||||
this.logger.log(
|
||||
`Failed login attempt for user ${dto.email} from IP ${ip}`,
|
||||
);
|
||||
throw new UnauthorizedException("Wrong email or password");
|
||||
}
|
||||
|
||||
this.logger.log(`Successful login for user ${dto.email} from IP ${ip}`);
|
||||
return this.generateToken(user);
|
||||
}
|
||||
|
||||
@@ -94,6 +105,9 @@ export class AuthService {
|
||||
}
|
||||
|
||||
async requestResetPassword(email: string) {
|
||||
if (this.config.get("oauth.disablePassword"))
|
||||
throw new ForbiddenException("Password sign in is disabled");
|
||||
|
||||
const user = await this.prisma.user.findFirst({
|
||||
where: { email },
|
||||
include: { resetPasswordToken: true },
|
||||
@@ -119,6 +133,9 @@ export class AuthService {
|
||||
}
|
||||
|
||||
async resetPassword(token: string, newPassword: string) {
|
||||
if (this.config.get("oauth.disablePassword"))
|
||||
throw new ForbiddenException("Password sign in is disabled");
|
||||
|
||||
const user = await this.prisma.user.findFirst({
|
||||
where: { resetPasswordToken: { token } },
|
||||
});
|
||||
@@ -205,7 +222,12 @@ export class AuthService {
|
||||
|
||||
async createRefreshToken(userId: string) {
|
||||
const { id, token } = await this.prisma.refreshToken.create({
|
||||
data: { userId, expiresAt: moment().add(3, "months").toDate() },
|
||||
data: {
|
||||
userId,
|
||||
expiresAt: moment()
|
||||
.add(this.config.get("general.sessionDuration"), "hours")
|
||||
.toDate(),
|
||||
},
|
||||
});
|
||||
|
||||
return { refreshTokenId: id, refreshToken: token };
|
||||
@@ -229,14 +251,14 @@ export class AuthService {
|
||||
if (accessToken)
|
||||
response.cookie("access_token", accessToken, {
|
||||
sameSite: "lax",
|
||||
maxAge: 1000 * 60 * 60 * 24 * 30 * 3, // 3 months
|
||||
maxAge: 1000 * 60 * 15, // 15 minutes
|
||||
});
|
||||
if (refreshToken)
|
||||
response.cookie("refresh_token", refreshToken, {
|
||||
path: "/api/auth/token",
|
||||
httpOnly: true,
|
||||
sameSite: "strict",
|
||||
maxAge: 1000 * 60 * 60 * 24 * 30 * 3, // 3 months
|
||||
maxAge: 1000 * 60 * 60 * this.config.get("general.sessionDuration"),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,11 @@ export class EmailService {
|
||||
user: this.config.get("smtp.username"),
|
||||
pass: this.config.get("smtp.password"),
|
||||
},
|
||||
tls: {
|
||||
rejectUnauthorized: !this.config.get(
|
||||
"smtp.allowUnauthorizedCertificates",
|
||||
),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ export class OAuthController {
|
||||
accessToken?: string;
|
||||
refreshToken?: string;
|
||||
loginToken?: string;
|
||||
} = await this.oauthService.signIn(user);
|
||||
} = await this.oauthService.signIn(user, request.ip);
|
||||
if (token.accessToken) {
|
||||
this.authService.addTokensToResponse(
|
||||
response,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Inject, Injectable } from "@nestjs/common";
|
||||
import { Inject, Injectable, Logger } from "@nestjs/common";
|
||||
import { User } from "@prisma/client";
|
||||
import { nanoid } from "nanoid";
|
||||
import { AuthService } from "../auth/auth.service";
|
||||
@@ -15,6 +15,7 @@ export class OAuthService {
|
||||
private auth: AuthService,
|
||||
@Inject("OAUTH_PLATFORMS") private platforms: string[],
|
||||
) {}
|
||||
private readonly logger = new Logger(OAuthService.name);
|
||||
|
||||
available(): string[] {
|
||||
return this.platforms
|
||||
@@ -39,7 +40,7 @@ export class OAuthService {
|
||||
return Object.fromEntries(oauthUsers.map((u) => [u.provider, u]));
|
||||
}
|
||||
|
||||
async signIn(user: OAuthSignInDto) {
|
||||
async signIn(user: OAuthSignInDto, ip: string) {
|
||||
const oauthUser = await this.prisma.oAuthUser.findFirst({
|
||||
where: {
|
||||
provider: user.provider,
|
||||
@@ -50,10 +51,11 @@ export class OAuthService {
|
||||
},
|
||||
});
|
||||
if (oauthUser) {
|
||||
this.logger.log(`Successful login for user ${user.email} from IP ${ip}`);
|
||||
return this.auth.generateToken(oauthUser.user, true);
|
||||
}
|
||||
|
||||
return this.signUp(user);
|
||||
return this.signUp(user, ip);
|
||||
}
|
||||
|
||||
async link(
|
||||
@@ -102,9 +104,9 @@ export class OAuthService {
|
||||
}
|
||||
}
|
||||
|
||||
private async getAvailableUsername(email: string) {
|
||||
// only remove + and - from email for now (maybe not enough)
|
||||
let username = email.split("@")[0].replace(/[+-]/g, "").substring(0, 20);
|
||||
private async getAvailableUsername(preferredUsername: string) {
|
||||
// only remove + and - from preferred username for now (maybe not enough)
|
||||
let username = preferredUsername.replace(/[+-]/g, "").substring(0, 20);
|
||||
while (true) {
|
||||
const user = await this.prisma.user.findFirst({
|
||||
where: {
|
||||
@@ -119,7 +121,7 @@ export class OAuthService {
|
||||
}
|
||||
}
|
||||
|
||||
private async signUp(user: OAuthSignInDto) {
|
||||
private async signUp(user: OAuthSignInDto, ip: string) {
|
||||
// register
|
||||
if (!this.config.get("oauth.allowRegistration")) {
|
||||
throw new ErrorPageException("no_user", "/auth/signIn", [
|
||||
@@ -151,11 +153,14 @@ export class OAuthService {
|
||||
return this.auth.generateToken(existingUser, true);
|
||||
}
|
||||
|
||||
const result = await this.auth.signUp({
|
||||
email: user.email,
|
||||
username: await this.getAvailableUsername(user.email),
|
||||
password: null,
|
||||
});
|
||||
const result = await this.auth.signUp(
|
||||
{
|
||||
email: user.email,
|
||||
username: await this.getAvailableUsername(user.providerUsername),
|
||||
password: null,
|
||||
},
|
||||
ip,
|
||||
);
|
||||
|
||||
await this.prisma.oAuthUser.create({
|
||||
data: {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import fetch from "node-fetch";
|
||||
import { ConfigService } from "../../config/config.service";
|
||||
import { OAuthCallbackDto } from "../dto/oauthCallback.dto";
|
||||
import { OAuthSignInDto } from "../dto/oauthSignIn.dto";
|
||||
@@ -52,7 +51,7 @@ export class DiscordProvider implements OAuthProvider<DiscordToken> {
|
||||
this.config.get("general.appUrl") + "/api/oauth/callback/discord",
|
||||
}),
|
||||
});
|
||||
const token: DiscordToken = await res.json();
|
||||
const token = (await res.json()) as DiscordToken;
|
||||
return {
|
||||
accessToken: token.access_token,
|
||||
refreshToken: token.refresh_token,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { Logger } from "@nestjs/common";
|
||||
import fetch from "node-fetch";
|
||||
import { ConfigService } from "../../config/config.service";
|
||||
import { JwtService } from "@nestjs/jwt";
|
||||
import { Cache } from "cache-manager";
|
||||
@@ -25,7 +24,7 @@ export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
|
||||
protected cache: Cache,
|
||||
) {
|
||||
this.discoveryUri = this.getDiscoveryUri();
|
||||
this.config.addListener("update", (key: string, _: unknown) => {
|
||||
this.config.addListener("update", (key: string) => {
|
||||
if (this.keyOfConfigUpdateEvents.includes(key)) {
|
||||
this.deinit();
|
||||
this.discoveryUri = this.getDiscoveryUri();
|
||||
@@ -94,7 +93,7 @@ export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
|
||||
redirect_uri: this.getRedirectUri(),
|
||||
}).toString(),
|
||||
});
|
||||
const token: OidcToken = await res.json();
|
||||
const token = (await res.json()) as OidcToken;
|
||||
return {
|
||||
accessToken: token.access_token,
|
||||
expiresIn: token.expires_in,
|
||||
@@ -125,9 +124,9 @@ export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
|
||||
|
||||
const username = claim
|
||||
? idTokenData[claim]
|
||||
: idTokenData.name ||
|
||||
idTokenData.nickname ||
|
||||
idTokenData.preferred_username;
|
||||
: idTokenData.preferred_username ||
|
||||
idTokenData.name ||
|
||||
idTokenData.nickname;
|
||||
|
||||
if (!username) {
|
||||
this.logger.error(
|
||||
@@ -159,7 +158,7 @@ export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
|
||||
: Date.now() + 1000 * 60 * 60 * 24;
|
||||
this.configuration = {
|
||||
expires,
|
||||
data: await res.json(),
|
||||
data: (await res.json()) as OidcConfiguration,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import fetch from "node-fetch";
|
||||
import { ConfigService } from "../../config/config.service";
|
||||
import { OAuthCallbackDto } from "../dto/oauthCallback.dto";
|
||||
import { OAuthSignInDto } from "../dto/oauthSignIn.dto";
|
||||
@@ -38,7 +37,7 @@ export class GitHubProvider implements OAuthProvider<GitHubToken> {
|
||||
},
|
||||
},
|
||||
);
|
||||
const token: GitHubToken = await res.json();
|
||||
const token = (await res.json()) as GitHubToken;
|
||||
return {
|
||||
accessToken: token.access_token,
|
||||
tokenType: token.token_type,
|
||||
|
||||
@@ -36,7 +36,12 @@ export class ReverseShareController {
|
||||
return { token, link };
|
||||
}
|
||||
|
||||
@Throttle(20, 60)
|
||||
@Throttle({
|
||||
default: {
|
||||
limit: 20,
|
||||
ttl: 60,
|
||||
},
|
||||
})
|
||||
@Get(":reverseShareToken")
|
||||
async getByToken(@Param("reverseShareToken") reverseShareToken: string) {
|
||||
const isValid = await this.reverseShareService.isValid(reverseShareToken);
|
||||
|
||||
@@ -16,6 +16,7 @@ import { Request, Response } from "express";
|
||||
import { GetUser } from "src/auth/decorator/getUser.decorator";
|
||||
import { AdministratorGuard } from "src/auth/guard/isAdmin.guard";
|
||||
import { JwtGuard } from "src/auth/guard/jwt.guard";
|
||||
import { AdminShareDTO } from "./dto/adminShare.dto";
|
||||
import { CreateShareDTO } from "./dto/createShare.dto";
|
||||
import { MyShareDTO } from "./dto/myShare.dto";
|
||||
import { ShareDTO } from "./dto/share.dto";
|
||||
@@ -26,7 +27,6 @@ import { ShareOwnerGuard } from "./guard/shareOwner.guard";
|
||||
import { ShareSecurityGuard } from "./guard/shareSecurity.guard";
|
||||
import { ShareTokenSecurity } from "./guard/shareTokenSecurity.guard";
|
||||
import { ShareService } from "./share.service";
|
||||
import { AdminShareDTO } from "./dto/adminShare.dto";
|
||||
@Controller("shares")
|
||||
export class ShareController {
|
||||
constructor(private shareService: ShareService) {}
|
||||
@@ -99,14 +99,24 @@ export class ShareController {
|
||||
await this.shareService.remove(id, isDeleterAdmin);
|
||||
}
|
||||
|
||||
@Throttle(10, 60)
|
||||
@Throttle({
|
||||
default: {
|
||||
limit: 10,
|
||||
ttl: 60,
|
||||
},
|
||||
})
|
||||
@Get("isShareIdAvailable/:id")
|
||||
async isShareIdAvailable(@Param("id") id: string) {
|
||||
return this.shareService.isShareIdAvailable(id);
|
||||
}
|
||||
|
||||
@HttpCode(200)
|
||||
@Throttle(20, 5 * 60)
|
||||
@Throttle({
|
||||
default: {
|
||||
limit: 20,
|
||||
ttl: 5 * 60,
|
||||
},
|
||||
})
|
||||
@UseGuards(ShareTokenSecurity)
|
||||
@Post(":id/token")
|
||||
async getShareToken(
|
||||
|
||||
@@ -11,7 +11,7 @@ import { ShareService } from "./share.service";
|
||||
imports: [
|
||||
JwtModule.register({}),
|
||||
EmailModule,
|
||||
ClamScanModule,
|
||||
forwardRef(() => ClamScanModule),
|
||||
ReverseShareModule,
|
||||
forwardRef(() => FileModule),
|
||||
],
|
||||
|
||||
32
frontend/package-lock.json
generated
32
frontend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "pingvin-share-frontend",
|
||||
"version": "0.25.0",
|
||||
"version": "0.27.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "pingvin-share-frontend",
|
||||
"version": "0.25.0",
|
||||
"version": "0.27.0",
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.11.4",
|
||||
"@emotion/server": "^11.11.0",
|
||||
@@ -4022,11 +4022,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/braces": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"dependencies": {
|
||||
"fill-range": "^7.0.1"
|
||||
"fill-range": "^7.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -5673,9 +5673,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"dependencies": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
},
|
||||
@@ -12547,11 +12547,11 @@
|
||||
}
|
||||
},
|
||||
"braces": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"requires": {
|
||||
"fill-range": "^7.0.1"
|
||||
"fill-range": "^7.1.1"
|
||||
}
|
||||
},
|
||||
"browserslist": {
|
||||
@@ -13772,9 +13772,9 @@
|
||||
}
|
||||
},
|
||||
"fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"requires": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pingvin-share-frontend",
|
||||
"version": "0.25.0",
|
||||
"version": "0.27.0",
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
|
||||
@@ -28,6 +28,19 @@ import toast from "../../utils/toast.util";
|
||||
import { safeRedirectPath } from "../../utils/router.util";
|
||||
|
||||
const useStyles = createStyles((theme) => ({
|
||||
signInWith: {
|
||||
fontWeight: 500,
|
||||
"&:before": {
|
||||
content: "''",
|
||||
flex: 1,
|
||||
display: "block",
|
||||
},
|
||||
"&:after": {
|
||||
content: "''",
|
||||
flex: 1,
|
||||
display: "block",
|
||||
},
|
||||
},
|
||||
or: {
|
||||
"&:before": {
|
||||
content: "''",
|
||||
@@ -128,49 +141,58 @@ const SignInForm = ({ redirectPath }: { redirectPath: string }) => {
|
||||
</Text>
|
||||
)}
|
||||
<Paper withBorder shadow="md" p={30} mt={30} radius="md">
|
||||
<form
|
||||
onSubmit={form.onSubmit((values) => {
|
||||
signIn(values.emailOrUsername, values.password);
|
||||
})}
|
||||
>
|
||||
<TextInput
|
||||
label={t("signin.input.email-or-username")}
|
||||
placeholder={t("signin.input.email-or-username.placeholder")}
|
||||
{...form.getInputProps("emailOrUsername")}
|
||||
/>
|
||||
<PasswordInput
|
||||
label={t("signin.input.password")}
|
||||
placeholder={t("signin.input.password.placeholder")}
|
||||
mt="md"
|
||||
{...form.getInputProps("password")}
|
||||
/>
|
||||
{config.get("smtp.enabled") && (
|
||||
<Group position="right" mt="xs">
|
||||
<Anchor component={Link} href="/auth/resetPassword" size="xs">
|
||||
<FormattedMessage id="resetPassword.title" />
|
||||
</Anchor>
|
||||
</Group>
|
||||
)}
|
||||
<Button fullWidth mt="xl" type="submit">
|
||||
<FormattedMessage id="signin.button.submit" />
|
||||
</Button>
|
||||
</form>
|
||||
{config.get("oauth.disablePassword") || (
|
||||
<form
|
||||
onSubmit={form.onSubmit((values) => {
|
||||
signIn(values.emailOrUsername, values.password);
|
||||
})}
|
||||
>
|
||||
<TextInput
|
||||
label={t("signin.input.email-or-username")}
|
||||
placeholder={t("signin.input.email-or-username.placeholder")}
|
||||
{...form.getInputProps("emailOrUsername")}
|
||||
/>
|
||||
<PasswordInput
|
||||
label={t("signin.input.password")}
|
||||
placeholder={t("signin.input.password.placeholder")}
|
||||
mt="md"
|
||||
{...form.getInputProps("password")}
|
||||
/>
|
||||
{config.get("smtp.enabled") && (
|
||||
<Group position="right" mt="xs">
|
||||
<Anchor component={Link} href="/auth/resetPassword" size="xs">
|
||||
<FormattedMessage id="resetPassword.title" />
|
||||
</Anchor>
|
||||
</Group>
|
||||
)}
|
||||
<Button fullWidth mt="xl" type="submit">
|
||||
<FormattedMessage id="signin.button.submit" />
|
||||
</Button>
|
||||
</form>
|
||||
)}
|
||||
{oauth.length > 0 && (
|
||||
<Stack mt="xl">
|
||||
<Group align="center" className={classes.or}>
|
||||
<Text>{t("signIn.oauth.or")}</Text>
|
||||
</Group>
|
||||
<Stack mt={config.get("oauth.disablePassword") ? undefined : "xl"}>
|
||||
{config.get("oauth.disablePassword") ? (
|
||||
<Group align="center" className={classes.signInWith}>
|
||||
<Text>{t("signIn.oauth.signInWith")}</Text>
|
||||
</Group>
|
||||
) : (
|
||||
<Group align="center" className={classes.or}>
|
||||
<Text>{t("signIn.oauth.or")}</Text>
|
||||
</Group>
|
||||
)}
|
||||
<Group position="center">
|
||||
{oauth.map((provider) => (
|
||||
<Button
|
||||
key={provider}
|
||||
component="a"
|
||||
target="_blank"
|
||||
title={t(`signIn.oauth.${provider}`)}
|
||||
href={getOAuthUrl(config.get("general.appUrl"), provider)}
|
||||
variant="light"
|
||||
fullWidth
|
||||
>
|
||||
{getOAuthIcon(provider)}
|
||||
{"\u2002" + t(`signIn.oauth.${provider}`)}
|
||||
</Button>
|
||||
))}
|
||||
</Group>
|
||||
|
||||
@@ -30,6 +30,7 @@ import shareService from "../../../services/share.service";
|
||||
import { FileUpload } from "../../../types/File.type";
|
||||
import { CreateShare } from "../../../types/share.type";
|
||||
import { getExpirationPreview } from "../../../utils/date.util";
|
||||
import React from "react";
|
||||
|
||||
const showCreateUploadModal = (
|
||||
modals: ModalsContextProps,
|
||||
@@ -242,7 +243,6 @@ const CreateUploadModalBody = ({
|
||||
disabled={form.values.never_expires}
|
||||
{...form.getInputProps("expiration_unit")}
|
||||
data={[
|
||||
// Set the label to singular if the number is 1, else plural
|
||||
{
|
||||
value: "-minutes",
|
||||
label:
|
||||
@@ -347,7 +347,9 @@ const CreateUploadModalBody = ({
|
||||
placeholder={t("upload.modal.accordion.email.placeholder")}
|
||||
searchable
|
||||
creatable
|
||||
autoComplete="email-recipients"
|
||||
id="recipient_email"
|
||||
autoComplete="email"
|
||||
type="email"
|
||||
getCreateLabel={(query) => `+ ${query}`}
|
||||
onCreate={(query) => {
|
||||
if (!query.match(/^\S+@\S+\.\S+$/)) {
|
||||
@@ -365,6 +367,25 @@ const CreateUploadModalBody = ({
|
||||
}
|
||||
}}
|
||||
{...form.getInputProps("recipients")}
|
||||
onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {
|
||||
// Add email on comma or semicolon
|
||||
if (e.key === "," || e.key === ";") {
|
||||
e.preventDefault();
|
||||
const inputValue = (
|
||||
e.target as HTMLInputElement
|
||||
).value.trim();
|
||||
if (inputValue.match(/^\S+@\S+\.\S+$/)) {
|
||||
form.setFieldValue("recipients", [
|
||||
...form.values.recipients,
|
||||
inputValue,
|
||||
]);
|
||||
(e.target as HTMLInputElement).value = "";
|
||||
}
|
||||
} else if (e.key === " ") {
|
||||
e.preventDefault();
|
||||
(e.target as HTMLInputElement).value = "";
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</Accordion.Panel>
|
||||
</Accordion.Item>
|
||||
|
||||
@@ -21,6 +21,7 @@ import thai from "./translations/th-TH";
|
||||
import ukrainian from "./translations/uk-UA";
|
||||
import chineseSimplified from "./translations/zh-CN";
|
||||
import chineseTraditional from "./translations/zh-TW";
|
||||
import turkish from "./translations/tr-TR";
|
||||
|
||||
export const LOCALES = {
|
||||
ENGLISH: {
|
||||
@@ -138,4 +139,9 @@ export const LOCALES = {
|
||||
code: "ko-KR",
|
||||
messages: korean,
|
||||
},
|
||||
TURKISH: {
|
||||
name: "Türkçe",
|
||||
code: "tr-TR",
|
||||
messages: turkish,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -37,6 +37,7 @@ export default {
|
||||
"signIn.notify.totp-required.title": "إن المصادقة الثنائية ضرورية",
|
||||
"signIn.notify.totp-required.description": "فضلًا أدخل رمز المصادقة الثنائية",
|
||||
"signIn.oauth.or": "أو",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -326,6 +327,9 @@ export default {
|
||||
"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.logo": "الشعار",
|
||||
"admin.config.general.logo.description":
|
||||
"يمكنك تغيير شعارك عن طريق تحميل صورة جديدة. يجب أن تكون الصورة PNG ويجب أن يكون تنسيقها 1:1.",
|
||||
@@ -376,6 +380,9 @@ export default {
|
||||
"admin.config.share.chunk-size": "حجم القطعة",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"ضبط حجم القطعة (بالبايت) لملفاتك المرفوعة للموازنة بين الكفاءة والفعالية حسب قوة اتصالك بالإنترنت. القطع الأصغر يمكن أن ترفع معدل النجاح في حال كان اتصالك بالإنترنت غير مستقر، بينما القطع الأكبر يمكنها أن تُسرّع رفع الملفات في حال كان الاتصال بالإنترنت مستقرًا.",
|
||||
"admin.config.share.auto-open-share-modal": "Auto open create share modal",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
|
||||
"admin.config.smtp.enabled": "مفعل",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"تفعيل الـSMTP. لا تفعّله إلا إذا قمت بإدخال المضيف، والمنفذ، والبريد الإلكتروني، واسم المستخدم، وكلمة السر لخادم الـSMTP.",
|
||||
@@ -391,12 +398,15 @@ export default {
|
||||
"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.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.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"تفعيل خيار الدخول بحساب GitHub",
|
||||
|
||||
@@ -39,6 +39,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Indtast den aktuelle engangskode fra din 2-faktor Authenticator",
|
||||
"signIn.oauth.or": "OR",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -224,7 +225,7 @@ export default {
|
||||
"admin.shares.title": "Share management",
|
||||
"admin.shares.table.id": "Share ID",
|
||||
"admin.shares.table.username": "Creator",
|
||||
"admin.shares.table.visitors": "Visitors",
|
||||
"admin.shares.table.visitors": "Besøgende",
|
||||
"admin.shares.table.expires": "Expires At",
|
||||
"admin.shares.edit.delete.title": "Delete share {id}",
|
||||
"admin.shares.edit.delete.description":
|
||||
@@ -271,7 +272,7 @@ export default {
|
||||
"upload.modal.expires.year-singular": "År",
|
||||
"upload.modal.expires.year-plural": "År",
|
||||
"upload.modal.accordion.name-and-description.title": "Name and description",
|
||||
"upload.modal.accordion.name-and-description.name.placeholder": "Name",
|
||||
"upload.modal.accordion.name-and-description.name.placeholder": "Navn",
|
||||
"upload.modal.accordion.name-and-description.description.placeholder":
|
||||
"Note for the recipients of this share",
|
||||
"upload.modal.accordion.email.title": "E-mail modtagere",
|
||||
@@ -316,7 +317,7 @@ export default {
|
||||
"A preview for this file type is unsupported. Please download the file to view it.",
|
||||
// END /share/[id]
|
||||
// /share/[id]/edit
|
||||
"share.edit.title": "Edit {shareId}",
|
||||
"share.edit.title": "Rediger {shareId}",
|
||||
"share.edit.append-upload": "Append file",
|
||||
"share.edit.notify.generic-error":
|
||||
"An error occurred while finishing your share.",
|
||||
@@ -336,6 +337,9 @@ export default {
|
||||
"På hvilken URL Pingvin Share er tilgængelig",
|
||||
"admin.config.general.show-home-page": "Vis forside",
|
||||
"admin.config.general.show-home-page.description": "Om forsiden skal vises",
|
||||
"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.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Skift dit logo ved at uploade et nyt billede. Billedet skal være PNG og skal have formatet 1:1.",
|
||||
@@ -386,6 +390,9 @@ export default {
|
||||
"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 speed up uploads 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": "Aktiveret",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Om SMTP er aktiveret. Aktiver kun SMTP, hvis du har indtastet SMTP-server vært, port, e-mail, bruger og adgangskode.",
|
||||
@@ -401,12 +408,15 @@ export default {
|
||||
"admin.config.smtp.password": "Adgangskode",
|
||||
"admin.config.smtp.password.description": "Adgangskoden til SMTP serveren",
|
||||
"admin.config.smtp.button.test": "Send test e-mail",
|
||||
"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": "Tillad registrering",
|
||||
"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.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.oauth.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Whether GitHub login is enabled",
|
||||
|
||||
@@ -12,17 +12,13 @@ export default {
|
||||
// END navbar
|
||||
// /
|
||||
"home.title": "Eine <h>selbst gehostete</h> Dateifreigabe-Plattform.",
|
||||
"home.description":
|
||||
"Möchtest du wirklich deine persönlichen Dateien an Drittanbieter wie WeTransfer weitergeben?",
|
||||
"home.description": "Möchtest du wirklich deine persönlichen Dateien an Drittanbieter wie WeTransfer weitergeben?",
|
||||
"home.bullet.a.name": "Selbst gehostet",
|
||||
"home.bullet.a.description":
|
||||
"Betreibe Pingvin Share auf deinem eigenen Server.",
|
||||
"home.bullet.a.description": "Betreibe Pingvin Share auf deinem eigenen Server.",
|
||||
"home.bullet.b.name": "Privatsphäre",
|
||||
"home.bullet.b.description":
|
||||
"Deine Dateien gehören dir und sollten niemals in die Hände Dritter gelangen.",
|
||||
"home.bullet.b.description": "Deine Dateien gehören dir und sollten niemals in die Hände Dritter gelangen.",
|
||||
"home.bullet.c.name": "Keine lästige Dateigrößenbegrenzung",
|
||||
"home.bullet.c.description":
|
||||
"Lade Dateien beliebiger Größe hoch. Nur dein Festplattenspeicher stellt die Grenze dar.",
|
||||
"home.bullet.c.description": "Lade Dateien beliebiger Größe hoch. Nur dein Festplattenspeicher stellt die Grenze dar.",
|
||||
"home.button.start": "Lege los",
|
||||
"home.button.source": "Quellcode",
|
||||
// END /
|
||||
@@ -31,15 +27,14 @@ export default {
|
||||
"signin.description": "Du hast noch kein Konto?",
|
||||
"signin.button.signup": "Registrieren",
|
||||
"signin.input.email-or-username": "Email oder Benutzername",
|
||||
"signin.input.email-or-username.placeholder":
|
||||
"Deine Email Adresse oder Benutzername",
|
||||
"signin.input.email-or-username.placeholder": "Deine Email 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 füge deinen Zwei-Faktor-Authentifizierungscode ein",
|
||||
"signIn.notify.totp-required.description": "Bitte füge deinen Zwei-Faktor-Authentifizierungscode ein",
|
||||
"signIn.oauth.or": "ODER",
|
||||
"signIn.oauth.signInWith": "Anmelden mit",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -62,16 +57,13 @@ export default {
|
||||
// END /auth/totp
|
||||
// /auth/reset-password
|
||||
"resetPassword.title": "Passwort vergessen?",
|
||||
"resetPassword.description":
|
||||
"Gib deine Email Adresse ein, um dein Passwort zurückzusetzen.",
|
||||
"resetPassword.notify.success":
|
||||
"Wir haben dir einen Link gesendet, unter dem du dein Passwort zurücksetzen kannst.",
|
||||
"resetPassword.description": "Gib deine Email Adresse ein, um dein Passwort zurückzusetzen.",
|
||||
"resetPassword.notify.success": "Wir haben dir einen Link gesendet, unter dem du dein Passwort zurücksetzen kannst.",
|
||||
"resetPassword.button.back": "Zurück zur Anmeldeseite",
|
||||
"resetPassword.text.resetPassword": "Passwort zurücksetzen",
|
||||
"resetPassword.text.enterNewPassword": "Gib dein neues Passwort ein",
|
||||
"resetPassword.input.password": "Neues Passwort",
|
||||
"resetPassword.notify.passwordReset":
|
||||
"Dein Passwort wurde erfolgreich zurückgesetzt.",
|
||||
"resetPassword.notify.passwordReset": "Dein Passwort wurde erfolgreich zurückgesetzt.",
|
||||
// /account
|
||||
"account.title": "Mein Konto",
|
||||
"account.card.info.title": "Kontoinformationen",
|
||||
@@ -81,8 +73,7 @@ export default {
|
||||
"account.card.password.title": "Passwort",
|
||||
"account.card.password.old": "Altes Passwort",
|
||||
"account.card.password.new": "Neues Passwort",
|
||||
"account.card.password.noPasswordSet":
|
||||
"Du hast kein Passwort erstellt. Wenn Du Dich mit E-Mail und Passwort anmelden möchtest, musst Du ein Passwort festlegen.",
|
||||
"account.card.password.noPasswordSet": "Du hast kein Passwort erstellt. Wenn Du Dich mit E-Mail und Passwort anmelden möchtest, musst Du ein Passwort festlegen.",
|
||||
"account.notify.password.success": "Passwort erfolgreich geändert",
|
||||
"account.card.oauth.title": "Anmeldung über soziale Netzwerke",
|
||||
"account.card.oauth.github": "GitHub",
|
||||
@@ -94,14 +85,11 @@ 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":
|
||||
"Das Entfernen der Verknüpfung mit Deinem sozialen Konten kann dazu führen, dass Du Dein Konto verlierst, wenn Du Dich nicht an Deinen Benutzernamen und Dein Passwort erinnerst.",
|
||||
"account.modal.unlink.description": "Das Entfernen der Verknüpfung mit Deinem sozialen Konten kann dazu führen, dass Du Dein Konto verlierst, wenn Du Dich nicht an Deinen Benutzernamen und Dein Passwort erinnerst.",
|
||||
"account.notify.oauth.unlinked.success": "Verknüpfung erfolgreich aufgehoben",
|
||||
"account.card.security.title": "Sicherheit",
|
||||
"account.card.security.totp.enable.description":
|
||||
"Gib dein aktuelles Passwort ein, um TOTP zu aktivieren",
|
||||
"account.card.security.totp.disable.description":
|
||||
"Gib dein aktuelles Passwort ein, um TOTP zu deaktivieren",
|
||||
"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 Authenticator hinzu",
|
||||
@@ -113,8 +101,7 @@ export default {
|
||||
"account.notify.totp.disable": "TOTP erfolgreich deaktiviert",
|
||||
"account.notify.totp.enable": "TOTP erfolgreich aktiviert",
|
||||
"account.card.language.title": "Sprache",
|
||||
"account.card.language.description":
|
||||
"Das Projekt wird von der Community übersetzt. Einige Sprachen könnten unvollständig sein.",
|
||||
"account.card.language.description": "Das Projekt wird von der Community übersetzt. Einige Sprachen könnten unvollständig sein.",
|
||||
"account.card.color.title": "Farbschema",
|
||||
// ThemeSwitcher.tsx
|
||||
"account.theme.dark": "Dunkel",
|
||||
@@ -122,8 +109,7 @@ export default {
|
||||
"account.theme.system": "System",
|
||||
"account.button.delete": "Konto löschen",
|
||||
"account.modal.delete.title": "Konto löschen",
|
||||
"account.modal.delete.description":
|
||||
"Möchtest du wirklich dein Konto inklusive aller aktiven Freigaben löschen?",
|
||||
"account.modal.delete.description": "Möchtest du wirklich dein Konto inklusive aller aktiven Freigaben löschen?",
|
||||
// END /account
|
||||
// /account/shares
|
||||
"account.shares.title": "Meine Freigaben",
|
||||
@@ -141,16 +127,13 @@ export default {
|
||||
"account.shares.modal.share-informations": "Teile deine Information",
|
||||
"account.shares.modal.share-link": "Freigabe teilen",
|
||||
"account.shares.modal.delete.title": "Lösche Freigabe {share}",
|
||||
"account.shares.modal.delete.description":
|
||||
"Möchtest du wirklich diese Freigabe löschen?",
|
||||
"account.shares.modal.delete.description": "Möchtest du wirklich diese Freigabe 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.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 erstellt.",
|
||||
// showCreateReverseShareModal.tsx
|
||||
"account.reverseShares.modal.title": "Externe Freigabe erstellen",
|
||||
"account.reverseShares.modal.expiration.label": "Gültig bis",
|
||||
@@ -168,15 +151,11 @@ export default {
|
||||
"account.reverseShares.modal.expiration.year-plural": "Jahre",
|
||||
"account.reverseShares.modal.max-size.label": "Max. Freigabengröße",
|
||||
"account.reverseShares.modal.send-email": "Email Benachrichtigung senden",
|
||||
"account.reverseShares.modal.send-email.description":
|
||||
"Sendet eine Email Benachrichtigung, wenn eine Datei auf einer externen Freigabe hochgeladen wurde.",
|
||||
"account.reverseShares.modal.send-email.description": "Sendet eine Email Benachrichtigung, wenn eine Datei auf einer externen Freigabe hochgeladen wurde.",
|
||||
"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 externe Freigabe wird am {expiration} ablaufen.",
|
||||
"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 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",
|
||||
@@ -186,8 +165,7 @@ export default {
|
||||
"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.description": "Möchtest du wirklich diese externe Freigabe löschen? In diesem Falle werden auch hiermit verbundene Freigaben gelöscht.",
|
||||
// END /account/reverseShares
|
||||
// /admin
|
||||
"admin.title": "Verwaltung",
|
||||
@@ -206,22 +184,18 @@ export default {
|
||||
"admin.users.edit.update.change-password.title": "Passwort ändern",
|
||||
"admin.users.edit.update.change-password.field": "Neues Passwort",
|
||||
"admin.users.edit.update.change-password.button": "Neues Passwort speichern",
|
||||
"admin.users.edit.update.notify.password.success":
|
||||
"Passwort erfolgreich geändert",
|
||||
"admin.users.edit.update.notify.password.success": "Passwort erfolgreich geändert",
|
||||
"admin.users.edit.delete.title": "Löschen des Nutzers {username}",
|
||||
"admin.users.edit.delete.description":
|
||||
"Möchtest du wirklich diesen Benutzer und all seine 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",
|
||||
"admin.users.modal.create.email": "Email",
|
||||
"admin.users.modal.create.password": "Passwort",
|
||||
"admin.users.modal.create.manual-password": "Passwort manuell festlegen",
|
||||
"admin.users.modal.create.manual-password.description":
|
||||
"Wenn nicht aktiviert, erhält der Benutzer eine Email mit einem Link, um sein Passwort festzulegen.",
|
||||
"admin.users.modal.create.manual-password.description": "Wenn nicht aktiviert, erhält der Benutzer eine Email mit einem Link, um sein Passwort festzulegen.",
|
||||
"admin.users.modal.create.admin": "Administratorrechte",
|
||||
"admin.users.modal.create.admin.description":
|
||||
"Wenn aktiviert, kann der Benutzer auf das Administrator-Panel zugreifen.",
|
||||
"admin.users.modal.create.admin.description": "Wenn aktiviert, kann der Benutzer auf das Administrator-Panel zugreifen.",
|
||||
// END /admin/users
|
||||
// /admin/shares
|
||||
"admin.shares.title": "Freigabenverwaltung",
|
||||
@@ -230,36 +204,28 @@ export default {
|
||||
"admin.shares.table.visitors": "Besucher",
|
||||
"admin.shares.table.expires": "Läuft ab am",
|
||||
"admin.shares.edit.delete.title": "Lösche Freigabe {id}",
|
||||
"admin.shares.edit.delete.description":
|
||||
"Möchtest du wirklich diese Freigabe löschen?",
|
||||
"admin.shares.edit.delete.description": "Möchtest du wirklich diese Freigabe löschen?",
|
||||
// END /admin/shares
|
||||
// /upload
|
||||
"upload.title": "Upload",
|
||||
"upload.notify.generic-error":
|
||||
"Während der Erstellung der Freigabe ist ein Fehler aufgetreten.",
|
||||
"upload.notify.count-failed":
|
||||
"{count} Dateien konnten nicht hochgeladen werden. Wird erneut versucht.",
|
||||
"upload.notify.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.",
|
||||
// Dropzone.tsx
|
||||
"upload.dropzone.title": "Dateien hochladen",
|
||||
"upload.dropzone.description":
|
||||
"Ziehe Dateien hierher, um deine Freigabe zu starten. Wir können nur Dateien akzeptieren, die insgesamt weniger als {maxSize} groß sind.",
|
||||
"upload.dropzone.notify.file-too-big":
|
||||
"Ihre Dateien überschreiten die maximale Freigabegröße von {maxSize}.",
|
||||
"upload.dropzone.description": "Ziehe Dateien hierher, um deine Freigabe zu starten. Wir können nur Dateien akzeptieren, die insgesamt weniger als {maxSize} groß sind.",
|
||||
"upload.dropzone.notify.file-too-big": "Ihre Dateien überschreiten die maximale Freigabegröße von {maxSize}.",
|
||||
// FileList.tsx
|
||||
"upload.filelist.name": "Name",
|
||||
"upload.filelist.size": "Größe",
|
||||
// showCreateUploadModal.tsx
|
||||
"upload.modal.title": "Erstelle Freigabe",
|
||||
"upload.modal.link.error.invalid":
|
||||
"Darf nur Buchstaben, Zahlen, Unterstriche und Bindestriche enthalten",
|
||||
"upload.modal.link.error.invalid": "Darf nur Buchstaben, Zahlen, Unterstriche und Bindestriche enthalten",
|
||||
"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.not-signed-in-description": "Du wirst deine Freigabe nicht löschen können oder die Besucheranzahl sehen.",
|
||||
"upload.modal.expires.never": "niemals",
|
||||
"upload.modal.expires.never-long": "Läuft nicht ab",
|
||||
"upload.modal.expires.error.too-long":
|
||||
"Ablauf überschreitet das maximale Ablaufdatum von {max}.",
|
||||
"upload.modal.expires.error.too-long": "Ablauf überschreitet das maximale Ablaufdatum von {max}.",
|
||||
"upload.modal.link.label": "Link",
|
||||
"upload.modal.expires.label": "Gültig bis",
|
||||
"upload.modal.expires.minute-singular": "Minute",
|
||||
@@ -276,8 +242,7 @@ export default {
|
||||
"upload.modal.expires.year-plural": "Year",
|
||||
"upload.modal.accordion.name-and-description.title": "Name und Beschreibung",
|
||||
"upload.modal.accordion.name-and-description.name.placeholder": "Name",
|
||||
"upload.modal.accordion.name-and-description.description.placeholder":
|
||||
"Hinweis für die Empfänger dieser Freigabe",
|
||||
"upload.modal.accordion.name-and-description.description.placeholder": "Hinweis für die Empfänger dieser Freigabe",
|
||||
"upload.modal.accordion.email.title": "Email Empfänger",
|
||||
"upload.modal.accordion.email.placeholder": "Email der Empfänger eingeben",
|
||||
"upload.modal.accordion.email.invalid-email": "Ungültige Emailadresse",
|
||||
@@ -288,40 +253,33 @@ export default {
|
||||
"upload.modal.accordion.security.max-views.placeholder": "Unbegrenzt",
|
||||
// showCompletedUploadModal.tsx
|
||||
"upload.modal.completed.never-expires": "Diese Freigabe läuft niemals ab.",
|
||||
"upload.modal.completed.expires-on":
|
||||
"Diese Freigabe wird am {expiration} ablaufen.",
|
||||
"upload.modal.completed.expires-on": "Diese Freigabe wird am {expiration} ablaufen.",
|
||||
"upload.modal.completed.share-ready": "Freigabe bereit",
|
||||
// END /upload
|
||||
// /share/[id]
|
||||
"share.title": "Freigabe {shareId}",
|
||||
"share.description": "Schau, was ich mit dir geteilt habe!",
|
||||
"share.error.visitor-limit-exceeded.title": "Besucher Limit erreicht",
|
||||
"share.error.visitor-limit-exceeded.description":
|
||||
"Die maximale Besucheranzahl für diese Freigabe ist überschritten.",
|
||||
"share.error.visitor-limit-exceeded.description": "Die maximale Besucheranzahl für diese Freigabe ist überschritten.",
|
||||
"share.error.removed.title": "Freigabe entfernt",
|
||||
"share.error.not-found.title": "Freigabe nicht gefunden",
|
||||
"share.error.not-found.description": "Die gesuchte Freigabe existiert nicht.",
|
||||
"share.modal.password.title": "Passwort erforderlich",
|
||||
"share.modal.password.description":
|
||||
"Um auf diese Freigabe zuzugreifen, gib bitte das Passwort für die Freigabe ein.",
|
||||
"share.modal.password.description": "Um auf diese Freigabe zuzugreifen, gib bitte das Passwort für die Freigabe ein.",
|
||||
"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. Versuche es in ein paar Minuten erneut.",
|
||||
"share.notify.download-all-preparing": "Die Freigabe wird vorbereitet. 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":
|
||||
"Eine Vorschau für diesen Dateityp wird nicht unterstützt. Bitte lade die Datei herunter, um sie anzusehen.",
|
||||
"share.modal.file-preview.error.not-supported.title": "Vorschau wird nicht unterstützt",
|
||||
"share.modal.file-preview.error.not-supported.description": "Eine Vorschau für diesen Dateityp wird nicht unterstützt. Bitte lade die Datei herunter, um sie anzusehen.",
|
||||
// END /share/[id]
|
||||
// /share/[id]/edit
|
||||
"share.edit.title": "{shareId} bearbeiten",
|
||||
"share.edit.append-upload": "Datei anfügen",
|
||||
"share.edit.notify.generic-error":
|
||||
"Während der Erstellung der Freigabe ist ein Fehler aufgetreten.",
|
||||
"share.edit.notify.generic-error": "Während der Erstellung der Freigabe ist ein Fehler aufgetreten.",
|
||||
"share.edit.notify.save-success": "Freigabe erfolgreich aktualisiert",
|
||||
// END /share/[id]/edit
|
||||
// /admin/config
|
||||
@@ -334,142 +292,105 @@ export default {
|
||||
"admin.config.general.app-name": "App-Name",
|
||||
"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.app-url.description": "Auf welcher URL Pingvin Share verfügbar ist",
|
||||
"admin.config.general.show-home-page": "Startseite anzeigen",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"Ob die Startseite angezeigt werden soll",
|
||||
"admin.config.general.show-home-page.description": "Ob die Startseite angezeigt werden soll",
|
||||
"admin.config.general.session-duration": "Session-Dauer",
|
||||
"admin.config.general.session-duration.description": "Zeit in Stunden, nach der ein Benutzer sich erneut anmelden muss (Voreinstellung: 3 Monate).",
|
||||
"admin.config.general.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Ändere dein Logo durch Hochladen eines Bildes. Das Bild muss im PNG-Format vorliegen und sollte mit Seitenverhältnis 1:1 sein.",
|
||||
"admin.config.general.logo.description": "Ändere dein Logo durch Hochladen eines Bildes. Das Bild muss im PNG-Format vorliegen und sollte mit Seitenverhältnis 1:1 sein.",
|
||||
"admin.config.general.logo.placeholder": "Bild auswählen",
|
||||
"admin.config.email.enable-share-email-recipients":
|
||||
"Erlaube das Teilen der Freigabe via Email",
|
||||
"admin.config.email.enable-share-email-recipients.description":
|
||||
"Gibt an, ob Emails an Freigabe-Empfänger ermöglicht werden sollen. Aktiviere dies nur, wenn Du SMTP aktivierst hast.",
|
||||
"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 tatsächlichen Werte ersetzt.",
|
||||
"admin.config.email.enable-share-email-recipients": "Erlaube das Teilen der Freigabe via Email",
|
||||
"admin.config.email.enable-share-email-recipients.description": "Gibt an, ob Emails an Freigabe-Empfänger ermöglicht werden sollen. Aktiviere dies nur, wenn Du SMTP aktivierst hast.",
|
||||
"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 tatsächlichen Werte ersetzt.",
|
||||
"admin.config.email.reverse-share-subject": "Name der externen Freigabe",
|
||||
"admin.config.email.reverse-share-subject.description":
|
||||
"Betreff der Email, die gesendet wird, wenn jemand eine Datei mit deinem externen Freigabe-Link hochlädt.",
|
||||
"admin.config.email.reverse-share-subject.description": "Betreff der Email, die gesendet wird, wenn jemand eine Datei mit deinem externen Freigabe-Link hochlädt.",
|
||||
"admin.config.email.reverse-share-message": "Nachricht für externe Freigabe",
|
||||
"admin.config.email.reverse-share-message.description":
|
||||
"Nachricht, die gesendet wird, wenn jemand eine Freigabe mit deinem externen Freigabe-Link erstellt. {shareUrl} wird durch den Namen des Erstellers und die Freigabe-URL ersetzt.",
|
||||
"admin.config.email.reset-password-subject":
|
||||
"Betreff für Passwortzurücksetzung",
|
||||
"admin.config.email.reset-password-subject.description":
|
||||
"Betreff der E-Mail, die gesendet wird, wenn ein Benutzer eine Passwortzurücksetzung anfordert.",
|
||||
"admin.config.email.reset-password-message":
|
||||
"Nachricht für Passwortzurücksetzung",
|
||||
"admin.config.email.reset-password-message.description":
|
||||
"Nachricht, die gesendet wird, wenn ein Benutzer eine Passwortzurücksetzung anfordert. {url} wird durch die URL für das Zurücksetzen des Passworts ersetzt.",
|
||||
"admin.config.email.reverse-share-message.description": "Nachricht, die gesendet wird, wenn jemand eine Freigabe mit deinem externen Freigabe-Link erstellt. {shareUrl} wird durch den Namen des Erstellers und die Freigabe-URL ersetzt.",
|
||||
"admin.config.email.reset-password-subject": "Betreff für Passwortzurücksetzung",
|
||||
"admin.config.email.reset-password-subject.description": "Betreff der E-Mail, die gesendet wird, wenn ein Benutzer eine Passwortzurücksetzung anfordert.",
|
||||
"admin.config.email.reset-password-message": "Nachricht für Passwortzurücksetzung",
|
||||
"admin.config.email.reset-password-message.description": "Nachricht, die gesendet wird, wenn ein Benutzer eine Passwortzurücksetzung anfordert. {url} wird durch die URL für das Zurücksetzen des Passworts ersetzt.",
|
||||
"admin.config.email.invite-subject": "Betreff für Einladung",
|
||||
"admin.config.email.invite-subject.description":
|
||||
"Betreff der E-Mail, die gesendet wird, wenn ein Administrator einen Benutzer einlädt.",
|
||||
"admin.config.email.invite-subject.description": "Betreff der E-Mail, die gesendet wird, wenn ein Administrator einen Benutzer einlädt.",
|
||||
"admin.config.email.invite-message": "Nachricht für Einladung",
|
||||
"admin.config.email.invite-message.description":
|
||||
"Nachricht, die gesendet wird, wenn ein Administrator einen Benutzer einlädt. {url} wird durch die Einladungs-URL und {password} durch das Passwort ersetzt.",
|
||||
"admin.config.email.invite-message.description": "Nachricht, die gesendet wird, wenn ein Administrator einen Benutzer einlädt. {url} wird durch die Einladungs-URL und {password} durch das Passwort ersetzt.",
|
||||
"admin.config.share.allow-registration": "Registrierung erlauben",
|
||||
"admin.config.share.allow-registration.description":
|
||||
"Gibt an, ob eine Registrierung erlaubt ist",
|
||||
"admin.config.share.allow-unauthenticated-shares":
|
||||
"Nicht authentifizierte Freigaben erlauben",
|
||||
"admin.config.share.allow-unauthenticated-shares.description":
|
||||
"Gibt an, ob nicht authentifizierte Benutzer Freigaben erstellen können",
|
||||
"admin.config.share.allow-registration.description": "Gibt an, ob eine Registrierung erlaubt ist",
|
||||
"admin.config.share.allow-unauthenticated-shares": "Nicht authentifizierte Freigaben erlauben",
|
||||
"admin.config.share.allow-unauthenticated-shares.description": "Gibt an, ob nicht authentifizierte Benutzer Freigaben erstellen können",
|
||||
"admin.config.share.max-expiration": "Max. Ablaufdatum",
|
||||
"admin.config.share.max-expiration.description":
|
||||
"Maximale Ablaufzeit in Stunden. Auf 0 setzen, um kein Ablaufdatum zu definieren.",
|
||||
"admin.config.share.max-expiration.description": "Maximale Ablaufzeit in Stunden. Auf 0 setzen, um kein Ablaufdatum zu definieren.",
|
||||
"admin.config.share.max-size": "Maximale Größe",
|
||||
"admin.config.share.max-size.description":
|
||||
"Maximale Größe einer Freigabe in Bytes",
|
||||
"admin.config.share.max-size.description": "Maximale Größe einer Freigabe in Bytes",
|
||||
"admin.config.share.zip-compression-level": "Zip Komprimierungsstufe",
|
||||
"admin.config.share.zip-compression-level.description":
|
||||
"Passe den Wert an, um ein Gleichgewicht zwischen Dateigröße und Komprimierungsgeschwindigkeit herzustellen. Gültige Werte liegen zwischen 0 und 9, wobei 0 für keine Komprimierung und 9 für maximale Komprimierung steht.",
|
||||
"admin.config.share.zip-compression-level.description": "Passe den Wert an, um ein Gleichgewicht zwischen Dateigröße und Komprimierungsgeschwindigkeit herzustellen. Gültige Werte liegen zwischen 0 und 9, wobei 0 für keine Komprimierung und 9 für maximale Komprimierung steht.",
|
||||
"admin.config.share.chunk-size": "Chunkgröße",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Passe die Chunkgröße (in Bytes) für deine Uploads an, um die Zuverlässigkeit deiner Internetverbindung auszugleichen. Kleinere Chunks können die Erfolgsraten für instabile Verbindungen verbessern, während größere Chunks Uploads für stabile Verbindungen beschleunigen können.",
|
||||
"admin.config.share.chunk-size.description": "Passe die Chunkgröße (in Bytes) für deine Uploads an, um die Zuverlässigkeit deiner Internetverbindung auszugleichen. Kleinere Chunks können die Erfolgsraten für instabile Verbindungen verbessern, während größere Chunks Uploads für stabile Verbindungen beschleunigen können.",
|
||||
"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": "Aktiviert",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Gibt an, ob SMTP aktiviert ist. Aktiviere dies nur, wenn Du den Host, den Port, die Email, den Benutzernamen und das Passwort deines SMTP-Servers eingegeben hast.",
|
||||
"admin.config.smtp.enabled.description": "Gibt an, ob SMTP aktiviert ist. Aktiviere dies nur, wenn Du den Host, den Port, die Email, den Benutzernamen und das Passwort deines SMTP-Servers eingegeben hast.",
|
||||
"admin.config.smtp.host": "Host",
|
||||
"admin.config.smtp.host.description": "Host des SMTP-Servers",
|
||||
"admin.config.smtp.port": "Port",
|
||||
"admin.config.smtp.port.description": "Port des SMTP-Servers",
|
||||
"admin.config.smtp.email": "E-Mail",
|
||||
"admin.config.smtp.email.description":
|
||||
"E-Mail-Adresse, von der die E-Mails gesendet werden",
|
||||
"admin.config.smtp.email.description": "E-Mail-Adresse, von der die E-Mails gesendet werden",
|
||||
"admin.config.smtp.username": "Benutzername",
|
||||
"admin.config.smtp.username.description": "Benutzername des SMTP-Servers",
|
||||
"admin.config.smtp.password": "Passwort",
|
||||
"admin.config.smtp.password.description": "Passwort des SMTP-Servers",
|
||||
"admin.config.smtp.button.test": "Test-E-Mail senden",
|
||||
"admin.config.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.oauth.allow-registration": "Registrierung erlauben",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Benutzern erlauben, sich über Soziale Netzwerke zu registrieren",
|
||||
"admin.config.oauth.allow-registration.description": "Benutzern erlauben, sich über Soziale Netzwerke zu registrieren",
|
||||
"admin.config.oauth.ignore-totp": "TOTP ignorieren",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Gibt an, ob TOTP ignoriert werden soll, wenn sich der Benutzer über Soziale Netzwerke anmeldet",
|
||||
"admin.config.oauth.ignore-totp.description": "Gibt an, ob TOTP ignoriert werden soll, wenn sich der Benutzer über Soziale Netzwerke anmeldet",
|
||||
"admin.config.oauth.disable-password": "Anmelden mit Passwort deaktivieren",
|
||||
"admin.config.oauth.disable-password.description": "Deaktiviert das Anmelden mit Passwort\nStelle vor Aktivierung dieser Konfiguration sicher, dass ein OAuth-Provider korrekt konfiguriert ist, um nicht ausgesperrt zu werden.",
|
||||
"admin.config.oauth.github-enabled": "GitHub",
|
||||
"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-id.description": "Client-ID der GitHub OAuth-App",
|
||||
"admin.config.oauth.github-client-secret": "GitHub Client-Secret",
|
||||
"admin.config.oauth.github-client-secret.description":
|
||||
"Client-Secret der GitHub OAuth-App",
|
||||
"admin.config.oauth.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-id.description": "Client-ID der Google OAuth-App",
|
||||
"admin.config.oauth.google-client-secret": "Google Client-Secret",
|
||||
"admin.config.oauth.google-client-secret.description":
|
||||
"Client-Secret der Google OAuth-App",
|
||||
"admin.config.oauth.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-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-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-id.description": "Client-ID der Microsoft OAuth-App",
|
||||
"admin.config.oauth.microsoft-client-secret": "Microsoft Client-Secret",
|
||||
"admin.config.oauth.microsoft-client-secret.description":
|
||||
"Client-Secret der Microsoft OAuth-App",
|
||||
"admin.config.oauth.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-guild": "Discord Server-ID",
|
||||
"admin.config.oauth.discord-limited-guild.description":
|
||||
"Die Anmeldung auf Benutzer in einem bestimmten Server beschränken. Leer lassen, um zu deaktivieren.",
|
||||
"admin.config.oauth.discord-limited-guild.description": "Die Anmeldung auf Benutzer in einem bestimmten Server beschränken. Leer lassen, um zu deaktivieren.",
|
||||
"admin.config.oauth.discord-client-id": "Discord Client-ID",
|
||||
"admin.config.oauth.discord-client-id.description":
|
||||
"Client-ID der Discord OAuth-App",
|
||||
"admin.config.oauth.discord-client-id.description": "Client-ID der Discord OAuth-App",
|
||||
"admin.config.oauth.discord-client-secret": "Discord Client-Secret",
|
||||
"admin.config.oauth.discord-client-secret.description":
|
||||
"Client-Secret der Discord OAuth-App",
|
||||
"admin.config.oauth.discord-client-secret.description": "Client-Secret der Discord OAuth-App",
|
||||
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
||||
"admin.config.oauth.oidc-enabled.description":
|
||||
"OpenID Connect Anmeldung erlaubt",
|
||||
"admin.config.oauth.oidc-enabled.description": "OpenID Connect Anmeldung erlaubt",
|
||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Verbindung Discovery URL",
|
||||
"admin.config.oauth.oidc-discovery-uri.description":
|
||||
"Discovery-URL der OpenID OAuth App",
|
||||
"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-discovery-uri.description": "Discovery-URL der OpenID OAuth App",
|
||||
"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-client-id": "OpenID Connect Client-ID",
|
||||
"admin.config.oauth.oidc-client-id.description":
|
||||
"Client-ID der OpenID Connect OAuth-App",
|
||||
"admin.config.oauth.oidc-client-id.description": "Client-ID der OpenID Connect OAuth-App",
|
||||
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client-Secret",
|
||||
"admin.config.oauth.oidc-client-secret.description":
|
||||
"Client-Secret der OpenID Connect OAuth-App",
|
||||
"admin.config.oauth.oidc-client-secret.description": "Client-Secret der OpenID Connect OAuth-App",
|
||||
// 404
|
||||
"404.description": "Ups, diese Seite existiert nicht.",
|
||||
"404.button.home": "Zurück zur Startseite",
|
||||
@@ -478,25 +399,16 @@ export default {
|
||||
"error.description": "Ups!",
|
||||
"error.button.back": "Zurück",
|
||||
"error.msg.default": "Etwas ist schief gelaufen.",
|
||||
"error.msg.access_denied":
|
||||
"Du hast den Authentifizierungsprozess abgebrochen, bitte versuche es erneut.",
|
||||
"error.msg.expired_token":
|
||||
"Der Authentifizierungsprozess hat zu lange gedauert, bitte versuche es erneut.",
|
||||
"error.msg.access_denied": "Du hast den Authentifizierungsprozess abgebrochen, bitte versuche es erneut.",
|
||||
"error.msg.expired_token": "Der Authentifizierungsprozess hat zu lange gedauert, bitte versuche es erneut.",
|
||||
"error.msg.invalid_token": "Interner Fehler",
|
||||
"error.msg.no_user":
|
||||
"Der mit diesem {0} Konto verknüpfte Benutzer existiert nicht.",
|
||||
"error.msg.no_email":
|
||||
"Kann die E-Mail-Adresse von dem Konto {0} nicht abrufen.",
|
||||
"error.msg.already_linked":
|
||||
"Das Konto {0} ist bereits mit einem anderen Konto verknüpft.",
|
||||
"error.msg.not_linked":
|
||||
"Das Konto {0} wurde noch nicht mit einem Konto verknüpft.",
|
||||
"error.msg.unverified_account":
|
||||
"Dieses Konto {0} wurde noch nicht verifiziert, bitte versuchen Sie es nach der Verifikation erneut.",
|
||||
"error.msg.discord_guild_permission_denied":
|
||||
"Du bist nicht berechtigt, Dich anzumelden.",
|
||||
"error.msg.cannot_get_user_info":
|
||||
"Deine Benutzerinformationen können nicht von diesem Konto {0} abgerufen werden.",
|
||||
"error.msg.no_user": "Der mit diesem {0} Konto verknüpfte Benutzer existiert nicht.",
|
||||
"error.msg.no_email": "Kann die E-Mail-Adresse von dem Konto {0} nicht abrufen.",
|
||||
"error.msg.already_linked": "Das Konto {0} ist bereits mit einem anderen Konto verknüpft.",
|
||||
"error.msg.not_linked": "Das Konto {0} wurde noch nicht mit einem Konto verknüpft.",
|
||||
"error.msg.unverified_account": "Dieses Konto {0} wurde noch nicht verifiziert, bitte versuche es nach der Verifikation erneut.",
|
||||
"error.msg.discord_guild_permission_denied": "Du bist nicht berechtigt, Dich anzumelden.",
|
||||
"error.msg.cannot_get_user_info": "Deine Benutzerinformationen können nicht von diesem Konto {0} abgerufen werden.",
|
||||
"error.param.provider_github": "GitHub",
|
||||
"error.param.provider_google": "Google",
|
||||
"error.param.provider_microsoft": "Microsoft",
|
||||
@@ -527,5 +439,5 @@ export default {
|
||||
"common.error.too-long": "Muss maximal {length} Zeichen enthalten",
|
||||
"common.error.exact-length": "Muss genau {length} Zeichen lang sein",
|
||||
"common.error.invalid-number": "Muss eine Zahl sein",
|
||||
"common.error.field-required": "Dieses Feld ist erforderlich",
|
||||
"common.error.field-required": "Dieses Feld ist erforderlich"
|
||||
};
|
||||
|
||||
@@ -41,6 +41,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Παρακαλώ εισάγετε τον κωδικό 2FA.",
|
||||
"signIn.oauth.or": "Ή",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -348,6 +349,9 @@ export default {
|
||||
"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.logo": "Λογότυπο",
|
||||
"admin.config.general.logo.description":
|
||||
"Αλλάξτε το λογότυπό σας ανεβάζοντας μια νέα εικόνα. Η εικόνα πρέπει να είναι PNG και αναλογία 1:1.",
|
||||
@@ -404,6 +408,9 @@ export default {
|
||||
"admin.config.share.chunk-size": "Μέγεθος κομματιών",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Προσαρμόστε το μέγεθος κομματιών (σε bytes) για να εξισορροπήσετε την αποδοτικότητα και την αξιοπιστία του συστήματος σύμφωνα με τη σύνδεσή σας στο διαδίκτυο. Μικρότερα κομμάτια μπορούν να βελτιώσουν τα ποσοστά επιτυχίας σε ασταθείς συνδέσεις, ενώ μεγαλύτερα κομμάτια επιταχύνουν τις μεταφορτώσεις σε σταθερές συνδέσεις.",
|
||||
"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": "Ενεργοποιημένο",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Εάν η λειτουργία SMTP είναι ενεργοποιημένη. Ενεργοποιήστε τη μόνον όταν ορίσετε σωστά τις παραμέτρους που ακολουθούν.",
|
||||
@@ -421,12 +428,15 @@ export default {
|
||||
"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.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.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Αν είναι ενεργοποιημένη η σύνδεση GitHub",
|
||||
|
||||
@@ -44,6 +44,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Please enter your two-factor authentication code",
|
||||
"signIn.oauth.or": "OR",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -399,6 +400,9 @@ export default {
|
||||
"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.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.",
|
||||
@@ -432,6 +436,7 @@ export default {
|
||||
"admin.config.email.invite-message": "Invite message",
|
||||
"admin.config.email.invite-message.description":
|
||||
"Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.",
|
||||
|
||||
"admin.config.share.allow-registration": "Allow registration",
|
||||
"admin.config.share.allow-registration.description":
|
||||
"Whether registration is allowed",
|
||||
@@ -448,9 +453,11 @@ export default {
|
||||
"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 speed up uploads for stable connections.",
|
||||
"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 speed up uploads 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.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": "Enabled",
|
||||
"admin.config.smtp.enabled.description":
|
||||
@@ -467,6 +474,10 @@ export default {
|
||||
"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":
|
||||
@@ -474,6 +485,9 @@ export default {
|
||||
"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.oauth.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Whether GitHub login is enabled",
|
||||
|
||||
@@ -39,6 +39,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Por favor ingrese su código de autenticación de dos factores",
|
||||
"signIn.oauth.or": "O",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -343,6 +344,9 @@ export default {
|
||||
"admin.config.general.show-home-page": "Mostrar página de inicio",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"Mostrar o no la página de inicio",
|
||||
"admin.config.general.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.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Cambia tu logo subiendo una nueva imagen. La imagen debe ser un PNG y debe estar en formato 1:1.",
|
||||
@@ -396,6 +400,9 @@ export default {
|
||||
"admin.config.share.chunk-size": "Tamaño de los fragmentos",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Ajusta el tamaño de los fragmentos (en bytes) para tus cargas para equilibrar la eficiencia y la fiabilidad según tu conexión a internet. Fragmentos más pequeños pueden mejorar las tasas de éxito para conexiones inestables, mientras que fragmentos más grandes aceleran las cargas para conexiones estables.",
|
||||
"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": "Habilitado",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Si SMTP está habilitado. Active solo si ha introducido el host, el puerto, el correo, el usuario y la contraseña de su servidor SMTP.",
|
||||
@@ -411,12 +418,15 @@ export default {
|
||||
"admin.config.smtp.password": "Contraseña",
|
||||
"admin.config.smtp.password.description": "Contraseña del servidor SMTP",
|
||||
"admin.config.smtp.button.test": "Enviar correo de prueba",
|
||||
"admin.config.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": "Permitir registro",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Permitir a los usuarios registrarse mediante login social",
|
||||
"admin.config.oauth.ignore-totp": "Ignorar TOTP",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Ignorar TOTP cuando el usuario utiliza inicio de sesión social",
|
||||
"admin.config.oauth.ignore-totp.description": "Ignorar TOTP cuando el usuario utiliza inicio de sesión social",
|
||||
"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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Si el inicio de sesión de GitHub está habilitado",
|
||||
|
||||
@@ -40,6 +40,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Syötä kaksivaiheisen tunnistautumisen koodi tähän",
|
||||
"signIn.oauth.or": "OR",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -339,6 +340,9 @@ export default {
|
||||
"admin.config.general.show-home-page": "Näytä kotisivu",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"Näytetäänkö kotisivu vai ei",
|
||||
"admin.config.general.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.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Muuta logoa lataamalla uusi kuva. Kuvan on oltava PNG ja sen on oltava formaatti 1:1.",
|
||||
@@ -389,6 +393,9 @@ export default {
|
||||
"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 speed up uploads 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": "Käytössä",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Onko SMTP käytössä. Aseta tämä todeksi vain, jos olet syöttänyt SMTP-palvelimen isäntän, portin, sähköpostin, käyttäjän ja salasanan.",
|
||||
@@ -404,12 +411,15 @@ export default {
|
||||
"admin.config.smtp.password": "Salasana",
|
||||
"admin.config.smtp.password.description": "SMTP palvelimen salasana",
|
||||
"admin.config.smtp.button.test": "Lähetä testisähköposti",
|
||||
"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.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.oauth.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Whether GitHub login is enabled",
|
||||
|
||||
@@ -40,6 +40,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Veuillez entrer votre code d'authentification à deux facteurs",
|
||||
"signIn.oauth.or": "OU",
|
||||
"signIn.oauth.signInWith": "Se connecter avec",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -341,8 +342,9 @@ export default {
|
||||
"admin.config.general.app-url.description":
|
||||
"Depuis quel URL le partage Pingvin est disponible",
|
||||
"admin.config.general.show-home-page": "Afficher la page d’accueil",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"Afficher ou non la page d’accueil",
|
||||
"admin.config.general.show-home-page.description": "Afficher ou non la page d’accueil",
|
||||
"admin.config.general.session-duration": "Durée de la session",
|
||||
"admin.config.general.session-duration.description": "Nombre d’heures après lesquelles un utilisateur doit se reconnecter (par défaut : 3 mois).",
|
||||
"admin.config.general.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Changez de logo en envoyant une nouvelle image. L’image doit être au format PNG et doit avoir un ratio 1:1.",
|
||||
@@ -396,6 +398,10 @@ export default {
|
||||
"admin.config.share.chunk-size": "Taille des tronçons",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Ajustez la taille des tronçons (en octets) pour que vos téléchargements équilibrent efficacité et fiabilité en fonction de votre connexion Internet. Les petits tronçons peuvent améliorer les taux de succès sur les connexions instables, tandis que les tronçons plus importants accélèrent les téléchargements sur les connexions stables.",
|
||||
"admin.config.share.auto-open-share-modal":
|
||||
"Ouvrir automatiquement la modale de partage",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"La modale de création de partage apparaît automatiquement lorsqu’un utilisateur sélectionne des fichiers, ce qui élimine le besoin de cliquer manuellement sur le bouton.",
|
||||
"admin.config.smtp.enabled": "Activer",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Active SMTP. Activez ceci uniquement si vous avez saisi l’hôte, le port, le courriel, l’utilisateur et son mot de passe, de votre serveur SMTP.",
|
||||
@@ -410,13 +416,20 @@ export default {
|
||||
"admin.config.smtp.username.description": "Nom d’utilisateur du serveur SMTP",
|
||||
"admin.config.smtp.password": "Mot de passe",
|
||||
"admin.config.smtp.password.description": "Mot de passe du serveur SMTP",
|
||||
"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": "Envoyer un courriel de 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.oauth.allow-registration": "Autoriser l’inscription",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Permettre aux utilisateurs de s’inscrire via leur identifiant social",
|
||||
"admin.config.oauth.ignore-totp": "Ignorer TOTP",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Ignorer le TOTP lorsque l’utilisateur utilise un identifiant social.",
|
||||
"admin.config.oauth.ignore-totp.description": "Ignorer le TOTP lorsque l’utilisateur utilise un identifiant social.",
|
||||
"admin.config.oauth.disable-password": "Désactiver la connexion par mot de passe",
|
||||
"admin.config.oauth.disable-password.description": "Désactive la connexion par mot de passe\nAssurez-vous qu’un fournisseur OAuth soit correctement configuré avant d’activer cette configuration pour éviter d'être enfermé.",
|
||||
"admin.config.oauth.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Permettre la connexion via GitHub.",
|
||||
|
||||
@@ -40,6 +40,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Adja meg a másik úton kapott kódját",
|
||||
"signIn.oauth.or": "VAGY",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -339,6 +340,9 @@ export default {
|
||||
"admin.config.general.show-home-page": "Kezdőlap mutatása",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"A kezdőlap mutatásának ki- és bekapcsolása",
|
||||
"admin.config.general.session-duration": "Munkamenet időtartama",
|
||||
"admin.config.general.session-duration.description":
|
||||
"Annak az időtartamnak a megadása, amit követően a felhasználónak ismét be kell jelentkeznie (alapérték: 3 hónap).",
|
||||
"admin.config.general.logo": "Logó",
|
||||
"admin.config.general.logo.description":
|
||||
"A logó személyessé tételéhez töltsön fel egy új képet. A formátum legyen PNG, az oldalarány 1:1.",
|
||||
@@ -390,6 +394,10 @@ export default {
|
||||
"admin.config.share.chunk-size": "Darabolási méret",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Az internet kapcsolat megbízhatóságának és átvitelének megfelelően választható feltöltési darabok mérete bájtban. A kisebb darabok növelhetik a szakadozó kapcsolatok használatának sikerességét, a nagyobb darabok a stabil kapcsolatokat gyorsítják.",
|
||||
"admin.config.share.auto-open-share-modal":
|
||||
"Megosztás létrehozása felület automatikus megjelenítése",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"A mgosztás létrehozása előugró elem automatikusan megjelenik a fájlok kiválasztásakor, ehhez nem szükséges külön kattintani.",
|
||||
"admin.config.smtp.enabled": "Engedélyezett",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"A(z) SMTP bekapcsolása. Csak akkor engedélyezze, ha már megadta a kiszolgáló, port, email, felhasználónév és jelszó beállításokat az SMTP kiszolgálóhoz.",
|
||||
@@ -406,12 +414,15 @@ export default {
|
||||
"admin.config.smtp.password": "Jelszó",
|
||||
"admin.config.smtp.password.description": "Jelszó az SMTP kiszolgálón",
|
||||
"admin.config.smtp.button.test": "Teszt email küldése",
|
||||
"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": "Regisztráció engedélyezése",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"A felhasználók közösségi bejelentkezésen át is regisztrálhatnak",
|
||||
"admin.config.oauth.ignore-totp": "TOTP mellőzése",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"TOTP mellőzése a közösségi bejelentkezést használó felhasználónál",
|
||||
"admin.config.oauth.ignore-totp.description": "TOTP mellőzése a közösségi bejelentkezést használó felhasználónál",
|
||||
"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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"GitHub bejelentkezés engedélyezése",
|
||||
|
||||
@@ -38,6 +38,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Inserisci il tuo codice di autenticazione a due fattori",
|
||||
"signIn.oauth.or": "OPPURE",
|
||||
"signIn.oauth.signInWith": "Registrati con",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -342,6 +343,9 @@ export default {
|
||||
"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",
|
||||
"admin.config.general.session-duration.description":
|
||||
"Tempo in ore dopo il quale un utente deve accedere nuovamente (default: 3 mesi).",
|
||||
"admin.config.general.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Cambia il tuo logo caricando una nuova immagine. L'immagine deve essere un PNG e dovrebbe avere il formato 1:1.",
|
||||
@@ -399,6 +403,10 @@ export default {
|
||||
"admin.config.share.chunk-size": "Dimensione dei chunk",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Regola la dimensione del chunk (in byte) per i tuoi caricamenti per bilanciare l'efficienza e l'affidabilità in base alla tua connessione internet. I chunk più piccoli possono migliorare i tassi di successo per connessioni instabili, mentre i chunks più grandi velocizzano i caricamenti per connessioni stabili.",
|
||||
"admin.config.share.auto-open-share-modal":
|
||||
"Apertura automatica creazione modalità condivisione",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"La modalità di creazione della condivisione viene visualizzata automaticamente quando un utente seleziona i file, eliminando la necessità di fare clic manualmente sul pulsante.",
|
||||
"admin.config.smtp.enabled": "Abilitato",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Indica se SMTP è abilitato. Impostalo a VERO solo se hai inserito host, porta, email, utente e password del tuo server SMTP.",
|
||||
@@ -414,12 +422,15 @@ export default {
|
||||
"admin.config.smtp.password": "Password",
|
||||
"admin.config.smtp.password.description": "Password del server SMTP",
|
||||
"admin.config.smtp.button.test": "Invia e-mail di prova",
|
||||
"admin.config.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": "Consenti la registrazione",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Consenti agli utenti di registrarsi tramite social login",
|
||||
"admin.config.oauth.ignore-totp": "Ignora TOTP",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Indica se ignorare TOTP quando l'utente utilizza il social login",
|
||||
"admin.config.oauth.ignore-totp.description": "Indica se ignorare TOTP quando l'utente utilizza il social login",
|
||||
"admin.config.oauth.disable-password": "Disabilita l'accesso tramite password",
|
||||
"admin.config.oauth.disable-password.description": "Nel caso di disabilitazione della password di accesso\nAssicurarti di aver configurato correttamente un provider OAuth prima di attivare questa configurazione, per evitare di essere bloccato fuori dal servizio.",
|
||||
"admin.config.oauth.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Se l'accesso tramite GitHub è abilitato",
|
||||
|
||||
@@ -40,6 +40,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"二段階認証コードを入力してください",
|
||||
"signIn.oauth.or": "または",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -335,6 +336,9 @@ export default {
|
||||
"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.logo": "ロゴ",
|
||||
"admin.config.general.logo.description":
|
||||
"新しい画像をアップロードしてロゴを変更できます。画像は、PNG形式でアスペクト比が1:1である必要があります。",
|
||||
@@ -385,6 +389,9 @@ export default {
|
||||
"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 speed up uploads 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": "有効",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"SMTPを有効にするかどうかを選択してください。SMTPサーバーのホスト名、ポート番号、電子メールアドレス、ユーザー名、パスワードが入力されている場合にのみ、有効にしてください。",
|
||||
@@ -399,12 +406,15 @@ export default {
|
||||
"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.oauth.allow-registration": "登録を許可する",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"ユーザーにソーシャルアカウント経由での登録を許可します",
|
||||
"admin.config.oauth.ignore-totp": "二段階認証を無視する",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"ソーシャルログイン時に二段階認証を無視するかどうかを設定します",
|
||||
"admin.config.oauth.ignore-totp.description": "ソーシャルログイン時に二段階認証を無視するかどうかを設定します",
|
||||
"admin.config.oauth.disable-password": "Disable password login",
|
||||
"admin.config.oauth.disable-password.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"GitHubアカウントを使用したログインを許可するかどうかを設定します",
|
||||
|
||||
@@ -39,6 +39,7 @@ export default {
|
||||
"signIn.notify.totp-required.title": "2단계 인증이 필요합니다",
|
||||
"signIn.notify.totp-required.description": "2단계 인증 코드를 입력해주세요",
|
||||
"signIn.oauth.or": "또는",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "깃허브",
|
||||
"signIn.oauth.google": "구글",
|
||||
"signIn.oauth.microsoft": "마이크로소프트",
|
||||
@@ -49,10 +50,10 @@ export default {
|
||||
"signup.title": "계정 만들기",
|
||||
"signup.description": "이미 계정이 있으신가요?",
|
||||
"signup.button.signin": "로그인",
|
||||
"signup.input.username": "사용자 이름",
|
||||
"signup.input.username.placeholder": "당신의 사용지 이름",
|
||||
"signup.input.username": "사용자명",
|
||||
"signup.input.username.placeholder": "귀하의 사용자명",
|
||||
"signup.input.email": "이메일",
|
||||
"signup.input.email.placeholder": "당신의 이메일",
|
||||
"signup.input.email.placeholder": "귀하의 이메일",
|
||||
"signup.button.submit": "시작하기",
|
||||
// END /auth/signup
|
||||
// /auth/totp
|
||||
@@ -182,7 +183,8 @@ export default {
|
||||
"account.reverseShares.table.expires": "만료 날짜",
|
||||
"account.reverseShares.modal.reverse-share-link": "역방향 공유 링크",
|
||||
"account.reverseShares.modal.delete.title": "역방향 공유 삭제",
|
||||
"account.reverseShares.modal.delete.description": "이 역방향 공유를 삭제하시겠습니까? 삭제하면 관련 공유도 삭제됩니다.",
|
||||
"account.reverseShares.modal.delete.description":
|
||||
"이 역방향 공유를 삭제하시겠습니까? 삭제하면 관련 공유도 삭제됩니다.",
|
||||
// END /account/reverseShares
|
||||
// /admin
|
||||
"admin.title": "관리자",
|
||||
@@ -203,16 +205,19 @@ export default {
|
||||
"admin.users.edit.update.change-password.button": "새 비밀번호 저장",
|
||||
"admin.users.edit.update.notify.password.success": "비밀번호 변경 완료",
|
||||
"admin.users.edit.delete.title": "{username} 사용자 삭제",
|
||||
"admin.users.edit.delete.description": "이 사용자의 모든 공유를 삭제하시겠습니까?",
|
||||
"admin.users.edit.delete.description":
|
||||
"이 사용자의 모든 공유를 삭제하시겠습니까?",
|
||||
// showCreateUserModal.tsx
|
||||
"admin.users.modal.create.title": "사용자 생성",
|
||||
"admin.users.modal.create.username": "사용자 이름",
|
||||
"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 Privilege",
|
||||
"admin.users.modal.create.admin.description": "이 옵션을 선택하면 사용자는 관리 패널에 액세스할 수 있습니다.",
|
||||
"admin.users.modal.create.admin.description":
|
||||
"이 옵션을 선택하면 사용자는 관리 패널에 액세스할 수 있습니다.",
|
||||
// END /admin/users
|
||||
// /admin/shares
|
||||
"admin.shares.title": "공유 관리",
|
||||
@@ -226,23 +231,29 @@ export default {
|
||||
// /upload
|
||||
"upload.title": "업로드",
|
||||
"upload.notify.generic-error": "공유를 완료하는 동안 오류가 발생했습니다.",
|
||||
"upload.notify.count-failed": "{count}개의 파일을 업로드하지 못했습니다. 다시 시도하세요.",
|
||||
"upload.notify.count-failed":
|
||||
"{count}개의 파일을 업로드하지 못했습니다. 다시 시도하세요.",
|
||||
// Dropzone.tsx
|
||||
"upload.dropzone.title": "파일 업로드",
|
||||
"upload.dropzone.description": "파일을 여기로 드래그&드랍하여 파일 업로드를 시작합니다. {maxSize} 를 초과하지 않는 파일만 업로드할 수 있습니다.",
|
||||
"upload.dropzone.notify.file-too-big": "파일이 {maxSize} 의 최대 공유 크기를 초과합니다.",
|
||||
"upload.dropzone.description":
|
||||
"파일을 여기로 드래그&드랍하여 파일 업로드를 시작합니다. {maxSize} 를 초과하지 않는 파일만 업로드할 수 있습니다.",
|
||||
"upload.dropzone.notify.file-too-big":
|
||||
"파일이 {maxSize} 의 최대 공유 크기를 초과합니다.",
|
||||
// FileList.tsx
|
||||
"upload.filelist.name": "이름",
|
||||
"upload.filelist.size": "크기",
|
||||
// showCreateUploadModal.tsx
|
||||
"upload.modal.title": "공유 생성",
|
||||
"upload.modal.link.error.invalid": "문자, 숫자, 밑줄 및 하이픈만 포함할 수 있습니다",
|
||||
"upload.modal.link.error.invalid":
|
||||
"문자, 숫자, 밑줄 및 하이픈만 포함할 수 있습니다",
|
||||
"upload.modal.link.error.taken": "이미 사용 중인 링크입니다",
|
||||
"upload.modal.not-signed-in": "로그인하지 않았습니다",
|
||||
"upload.modal.not-signed-in-description": "공유를 수동으로 삭제하고 방문자 수를 볼 수 없습니다.",
|
||||
"upload.modal.not-signed-in-description":
|
||||
"공유를 수동으로 삭제하고 방문자 수를 볼 수 없습니다.",
|
||||
"upload.modal.expires.never": "절대 안 함",
|
||||
"upload.modal.expires.never-long": "만료 없음",
|
||||
"upload.modal.expires.error.too-long": "만료가 {max} 의 최대 만료일을 초과합니다.",
|
||||
"upload.modal.expires.error.too-long":
|
||||
"만료가 {max} 의 최대 만료일을 초과합니다.",
|
||||
"upload.modal.link.label": "링크",
|
||||
"upload.modal.expires.label": "만료일",
|
||||
"upload.modal.expires.minute-singular": "분",
|
||||
@@ -259,7 +270,8 @@ export default {
|
||||
"upload.modal.expires.year-plural": "년",
|
||||
"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.name-and-description.description.placeholder":
|
||||
"공유를 받을 사람에게 메모",
|
||||
"upload.modal.accordion.email.title": "받는 사람 메일 주소",
|
||||
"upload.modal.accordion.email.placeholder": "메일 주소 입력",
|
||||
"upload.modal.accordion.email.invalid-email": "이메일 주소가 틀립니다",
|
||||
@@ -276,27 +288,33 @@ export default {
|
||||
// /share/[id]
|
||||
"share.title": "공유 {shareId}",
|
||||
"share.description": "내가 당신과 공유한 것을 보세요!",
|
||||
"share.error.visitor-limit-exceeded.title": "방문자 제한 초과",
|
||||
"share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.",
|
||||
"share.error.visitor-limit-exceeded.title": "방문자 한도 초과",
|
||||
"share.error.visitor-limit-exceeded.description":
|
||||
"이 공유의 방문자 한도를 초과했습니다.",
|
||||
"share.error.removed.title": "공유가 삭제됨",
|
||||
"share.error.not-found.title": "공유를 찾을 수 없습니다.",
|
||||
"share.error.not-found.description": "당신이 찾는 공유는 존재하지 않습니다.",
|
||||
"share.modal.password.title": "비밀번호 필요",
|
||||
"share.modal.password.description": "이 공유에 액세스하려면 공유의 암호를 입력하십시오.",
|
||||
"share.modal.password.description":
|
||||
"이 공유에 접근하려면 공유의 암호를 입력하십시오.",
|
||||
"share.modal.password": "비밀번호",
|
||||
"share.modal.error.invalid-password": "잘못된 비밀번호",
|
||||
"share.button.download-all": "모두 다운로드",
|
||||
"share.notify.download-all-preparing": "공유가 준비 중입니다. 잠시 후에 다시 시도하십시오.",
|
||||
"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": "이 파일 형식의 미리보기가 지원되지 않습니다. 파일을 다운로드하여 확인하십시오.",
|
||||
"share.modal.file-preview.error.not-supported.title":
|
||||
"미리보기는 지원되지 않습니다",
|
||||
"share.modal.file-preview.error.not-supported.description":
|
||||
"이 파일 형식의 미리보기가 지원되지 않습니다. 파일을 다운로드하여 확인하십시오.",
|
||||
// END /share/[id]
|
||||
// /share/[id]/edit
|
||||
"share.edit.title": "수정 {shareId}",
|
||||
"share.edit.append-upload": "파일 추가",
|
||||
"share.edit.notify.generic-error": "공유를 완료하는 동안 오류가 발생했습니다.",
|
||||
"share.edit.notify.generic-error":
|
||||
"공유를 완료하는 동안 오류가 발생했습니다.",
|
||||
"share.edit.notify.save-success": "공유가 업데이트 되었습니다.",
|
||||
// END /share/[id]/edit
|
||||
// /admin/config
|
||||
@@ -307,46 +325,69 @@ export default {
|
||||
"admin.config.category.smtp": "SMTP",
|
||||
"admin.config.category.oauth": "소셜 로그인",
|
||||
"admin.config.general.app-name": "앱 이름",
|
||||
"admin.config.general.app-name.description": "Name of the application",
|
||||
"admin.config.general.app-name.description": "이 앱의 이름",
|
||||
"admin.config.general.app-url": "앱 URL",
|
||||
"admin.config.general.app-url.description": "Pingvin Share를 사용할 수 있는 URL",
|
||||
"admin.config.general.app-url.description":
|
||||
"Pingvin Share를 사용할 수 있는 URL",
|
||||
"admin.config.general.show-home-page": "홈 페이지 표시",
|
||||
"admin.config.general.show-home-page.description": "홈 페이지를 표시할지 여부를 점검하십시오.",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"홈 페이지를 표시할지 여부",
|
||||
"admin.config.general.session-duration": "세션 기간",
|
||||
"admin.config.general.session-duration.description":
|
||||
"사용자가 다시 로그인해야 하는 시간 (기본값: 3개월)",
|
||||
"admin.config.general.logo": "로고",
|
||||
"admin.config.general.logo.description": "새 이미지를 업로드하여 로고를 변경하십시오. 이미지는 PNG여야 하며 1:1 비율이어야 합니다.",
|
||||
"admin.config.general.logo.description":
|
||||
"새 이미지를 업로드하여 로고를 변경하십시오. 이미지는 PNG여야 하며 1:1 비율이어야 합니다.",
|
||||
"admin.config.general.logo.placeholder": "이미지 선택",
|
||||
"admin.config.email.enable-share-email-recipients": "메일 수신 허용",
|
||||
"admin.config.email.enable-share-email-recipients.description": "메일이 수신자를 공유하도록 허용할지 여부. SMTP를 사용 가능으로 설정한 경우에만 이 옵션을 사용 가능으로 설정합니다.",
|
||||
"admin.config.email.enable-share-email-recipients.description":
|
||||
"메일이 수신자를 공유하도록 허용할지 여부. SMTP를 사용 가능으로 설정한 경우에만 이 옵션을 사용 가능으로 설정합니다.",
|
||||
"admin.config.email.share-recipients-subject": "공유 제목",
|
||||
"admin.config.email.share-recipients-subject.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.reverse-share-subject": "역공유 제목",
|
||||
"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.share-recipients-message.description":
|
||||
"공유 수신자에게 보내는 메시지입니다. 사용 가능한 변수:\n {creator} - 공유 작성자의 사용자 이름\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-message": "역방향 공유 메시지",
|
||||
"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} 은 비밀번호 재설정 URL로 대체됩니다.",
|
||||
"admin.config.email.reset-password-message.description":
|
||||
"사용자가 비밀번호 재설정을 요청할 때 전송되는 메시지입니다. {url} 은 비밀번호 재설정 URL로 대체됩니다.",
|
||||
"admin.config.email.invite-subject": "초대 제목",
|
||||
"admin.config.email.invite-subject.description": "관리자가 사용자를 초대할 때 전송되는 이메일의 제목입니다.",
|
||||
"admin.config.email.invite-subject.description":
|
||||
"관리자가 사용자를 초대할 때 전송되는 이메일의 제목입니다.",
|
||||
"admin.config.email.invite-message": "초대 메시지",
|
||||
"admin.config.email.invite-message.description": "관리자가 사용자를 초대하면 전송되는 메시지입니다. {url} 은 초대 URL로, {password} 는 비밀번호로 대체됩니다.",
|
||||
"admin.config.email.invite-message.description":
|
||||
"관리자가 사용자를 초대하면 전송되는 메시지입니다. {url} 은 초대 URL로, {password} 는 비밀번호로 대체됩니다.",
|
||||
"admin.config.share.allow-registration": "가입 허용",
|
||||
"admin.config.share.allow-registration.description": "등록 가능 여부",
|
||||
"admin.config.share.allow-unauthenticated-shares": "인증되지 않은 공유 허용",
|
||||
"admin.config.share.allow-unauthenticated-shares.description": "인증되지 않은 사용자가 공유를 생성할 수 있는지 여부",
|
||||
"admin.config.share.max-expiration": "최대 만료일",
|
||||
"admin.config.share.max-expiration.description": "최대 공유 만료 시간입니다. 만료 기간을 설정하지 않는경우 0으로 설정합니다.",
|
||||
"admin.config.share.allow-unauthenticated-shares.description":
|
||||
"인증되지 않은 사용자가 공유를 생성할 수 있는지 여부",
|
||||
"admin.config.share.max-expiration": "최대 만료 시간",
|
||||
"admin.config.share.max-expiration.description":
|
||||
"공유의 최대 만료 시간. 무제한 만료를 허용하려면 0으로 설정하세요.",
|
||||
"admin.config.share.max-size": "최대 크기",
|
||||
"admin.config.share.max-size.description": "공유 최대 크기 - 바이트",
|
||||
"admin.config.share.zip-compression-level": "압축 레벨",
|
||||
"admin.config.share.zip-compression-level.description": "파일 크기와 압축 속도 간의 균형을 맞추도록 레벨을 조정합니다. 유효한 값의 범위는 0에서 9까지이며, 0은 압축되지 않고 9는 최대 압축입니다. ",
|
||||
"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": "청크 크기",
|
||||
"admin.config.share.chunk-size.description": "업로드할 청크 크기(바이트 단위)를 조정하여 인터넷 연결에 따라 효율성과 신뢰성의 균형을 유지합니다. 더 작은 청크는 불안정한 연결에 대한 성공률을 향상시킬 수 있고, 더 큰 청크는 안정적인 연결에 대한 업로드 속도를 높일 수 있습니다.",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"업로드할 청크 크기(바이트 단위)를 조정하여 인터넷 연결에 따라 효율성과 신뢰성의 균형을 유지합니다. 더 작은 청크는 불안정한 연결에 대한 성공률을 향상시킬 수 있고, 더 큰 청크는 안정적인 연결에 대한 업로드 속도를 높일 수 있습니다.",
|
||||
"admin.config.share.auto-open-share-modal": "공유 생성 창 자동 열기",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"사용자가 파일을 선택하면 공유 생성 창이 자동으로 나타나서 버튼을 수동으로 클릭할 필요가 없습니다.",
|
||||
"admin.config.smtp.enabled": "활성화됨",
|
||||
"admin.config.smtp.enabled.description": "SMTP 사용 여부 SMTP 서버의 호스트, 포트, 전자 메일, 사용자 및 암호를 입력한 경우에만 true로 설정합니다.",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"SMTP 사용 여부 SMTP 서버의 호스트, 포트, 전자 메일, 사용자 및 암호를 입력한 경우에만 true로 설정합니다.",
|
||||
"admin.config.smtp.host": "호스트",
|
||||
"admin.config.smtp.host.description": "SMTP 서버의 호스트",
|
||||
"admin.config.smtp.port": "포트",
|
||||
@@ -358,49 +399,70 @@ export default {
|
||||
"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.oauth.allow-registration": "가입 허용",
|
||||
"admin.config.oauth.allow-registration.description": "사용자가 소셜 로그인을 통해 등록할 수 있도록 허용",
|
||||
"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.github-enabled": "깃허브",
|
||||
"admin.config.oauth.github-enabled.description": "깃허브 로그인 사용 여부",
|
||||
"admin.config.oauth.github-client-id": "GitHub 클라이언트 ID",
|
||||
"admin.config.oauth.github-client-id.description": "GitHub OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.github-client-id.description":
|
||||
"GitHub OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.github-client-secret": "GitHub 클라이언트 secret",
|
||||
"admin.config.oauth.github-client-secret.description": "GitHub OAuth 앱의 클라이언트 secret",
|
||||
"admin.config.oauth.github-client-secret.description":
|
||||
"GitHub OAuth 앱의 클라이언트 secret",
|
||||
"admin.config.oauth.google-enabled": "구글",
|
||||
"admin.config.oauth.google-enabled.description": "구글 로그인 활성화 여부",
|
||||
"admin.config.oauth.google-client-id": "Google 클라이언트 ID",
|
||||
"admin.config.oauth.google-client-id.description": "Google OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.google-client-id.description":
|
||||
"Google OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.google-client-secret": "Google 클라이언트 secret",
|
||||
"admin.config.oauth.google-client-secret.description": "Google OAuth 앱의 클라이언트 secret",
|
||||
"admin.config.oauth.google-client-secret.description":
|
||||
"Google OAuth 앱의 클라이언트 secret",
|
||||
"admin.config.oauth.microsoft-enabled": "마이크로소프트",
|
||||
"admin.config.oauth.microsoft-enabled.description": "마이크로소프트 로그인 사용 여부",
|
||||
"admin.config.oauth.microsoft-enabled.description":
|
||||
"마이크로소프트 로그인 사용 여부",
|
||||
"admin.config.oauth.microsoft-tenant": "마이크로소프트 테넌트",
|
||||
"admin.config.oauth.microsoft-tenant.description": "Microsoft OAuth 앱의 테넌트 ID\n공통: Microsoft 개인 계정과 Microsoft Entra ID의 직장 또는 학교 계정을 모두 가진 사용자는 응용 프로그램에 로그인할 수 있습니다. 조직: Microsoft Entra ID의 직장 또는 학교 계정을 가진 사용자만 응용 프로그램에 로그인할 수 있습니다.\n소비자: 개인 마이크로소프트 계정을 가진 사용자만 애플리케이션에 로그인할 수 있습니다.\nMicrosoft Entra 테넌트의 도메인 이름 또는 GUID 형식의 테넌트 ID: 특정 Microsoft Entra 테넌트의 사용자(직장 또는 학교 계정을 가진 디렉토리 구성원 또는 개인 Microsoft 계정을 가진 디렉토리 게스트)만 응용 프로그램에 로그인할 수 있습니다.",
|
||||
"admin.config.oauth.microsoft-tenant.description":
|
||||
"Microsoft OAuth 앱의 테넌트 ID\n공통: Microsoft 개인 계정과 Microsoft Entra ID의 직장 또는 학교 계정을 모두 가진 사용자는 응용 프로그램에 로그인할 수 있습니다. 조직: Microsoft Entra ID의 직장 또는 학교 계정을 가진 사용자만 응용 프로그램에 로그인할 수 있습니다.\n소비자: 개인 마이크로소프트 계정을 가진 사용자만 애플리케이션에 로그인할 수 있습니다.\nMicrosoft Entra 테넌트의 도메인 이름 또는 GUID 형식의 테넌트 ID: 특정 Microsoft Entra 테넌트의 사용자(직장 또는 학교 계정을 가진 디렉토리 구성원 또는 개인 Microsoft 계정을 가진 디렉토리 게스트)만 응용 프로그램에 로그인할 수 있습니다.",
|
||||
"admin.config.oauth.microsoft-client-id": "마이크로소프트 클라이언트 ID",
|
||||
"admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.microsoft-client-id.description":
|
||||
"Microsoft OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.microsoft-client-secret": "Microsoft 클라이언트 secret",
|
||||
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth 앱의 클라이언트 비밀",
|
||||
"admin.config.oauth.microsoft-client-secret.description":
|
||||
"Microsoft OAuth 앱의 클라이언트 비밀",
|
||||
"admin.config.oauth.discord-enabled": "디스코드",
|
||||
"admin.config.oauth.discord-enabled.description": "Discord 로그인 활성화 여부",
|
||||
"admin.config.oauth.discord-enabled.description":
|
||||
"Discord 로그인 활성화 여부",
|
||||
"admin.config.oauth.discord-limited-guild": "디스코드 제한 서버 ID",
|
||||
"admin.config.oauth.discord-limited-guild.description": "특정 서버의 사용자로 로그인을 제한합니다. 사용하지 않으려면 비워 둡니다.",
|
||||
"admin.config.oauth.discord-limited-guild.description":
|
||||
"특정 서버의 사용자로 로그인을 제한합니다. 사용하지 않으려면 비워 둡니다.",
|
||||
"admin.config.oauth.discord-client-id": "디스코드 클라이언트 ID",
|
||||
"admin.config.oauth.discord-client-id.description": "Discord OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.discord-client-id.description":
|
||||
"Discord OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.discord-client-secret": "Discord 클라이언트 secret",
|
||||
"admin.config.oauth.discord-client-secret.description": "Discord OAuth 앱의 클라이언트 secret",
|
||||
"admin.config.oauth.discord-client-secret.description":
|
||||
"Discord OAuth 앱의 클라이언트 secret",
|
||||
"admin.config.oauth.oidc-enabled": "OpenID 연결",
|
||||
"admin.config.oauth.oidc-enabled.description": "OpenID Connect 로그인 사용 여부",
|
||||
"admin.config.oauth.oidc-enabled.description":
|
||||
"OpenID Connect 로그인 사용 여부",
|
||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
||||
"admin.config.oauth.oidc-discovery-uri.description":
|
||||
"Discovery URI of the OpenID Connect OAuth app",
|
||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
||||
"admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID 토큰의 Username claim 입니다. 이 구성이 무엇인지 모르면 비워 둡니다.",
|
||||
"admin.config.oauth.oidc-username-claim.description":
|
||||
"OpenID Connect ID 토큰의 Username claim 입니다. 이 구성이 무엇인지 모르면 비워 둡니다.",
|
||||
"admin.config.oauth.oidc-client-id": "OpenID Connect 클라이언트 ID",
|
||||
"admin.config.oauth.oidc-client-id.description": "OpenID Connect OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.oidc-client-id.description":
|
||||
"OpenID Connect OAuth 앱의 클라이언트 ID",
|
||||
"admin.config.oauth.oidc-client-secret": "OpenID 클라이언트 secret",
|
||||
"admin.config.oauth.oidc-client-secret.description": "OpenID Connect OAuth 앱의 클라이언트 secret",
|
||||
"admin.config.oauth.oidc-client-secret.description":
|
||||
"OpenID Connect OAuth 앱의 클라이언트 secret",
|
||||
// 404
|
||||
"404.description": "이런, 이 페이지는 존재하지 않습니다.",
|
||||
"404.button.home": "나를 집으로 데려다 줘",
|
||||
@@ -409,16 +471,22 @@ export default {
|
||||
"error.description": "이런!",
|
||||
"error.button.back": "뒤로 가기",
|
||||
"error.msg.default": "문제가 발생했습니다",
|
||||
"error.msg.access_denied": "인증 프로세스가 취소되었습니다. 다시 시도하십시오.",
|
||||
"error.msg.expired_token": "인증 절차가 너무 오래 걸렸습니다. 다시 시도하십시오.",
|
||||
"error.msg.access_denied":
|
||||
"인증 프로세스가 취소되었습니다. 다시 시도하십시오.",
|
||||
"error.msg.expired_token":
|
||||
"인증 절차가 너무 오래 걸렸습니다. 다시 시도하십시오.",
|
||||
"error.msg.invalid_token": "내부 오류",
|
||||
"error.msg.no_user": "{0} 계정에 연결된 사용자가 없습니다.",
|
||||
"error.msg.no_email": "이 {0} 계정에서 메일 주소를 가져올 수 없습니다.",
|
||||
"error.msg.already_linked": "이 {0} 계정은 이미 다른 계정에 연결되어 있습니다.",
|
||||
"error.msg.not_linked": "이 {0} 계정은 아직 어떤 계정에도 연결되지 않았습니다.",
|
||||
"error.msg.unverified_account": "이 {0} 계정은 확인되지 않았습니다. 확인 후 다시 시도하십시오.",
|
||||
"error.msg.already_linked":
|
||||
"이 {0} 계정은 이미 다른 계정에 연결되어 있습니다.",
|
||||
"error.msg.not_linked":
|
||||
"이 {0} 계정은 아직 어떤 계정에도 연결되지 않았습니다.",
|
||||
"error.msg.unverified_account":
|
||||
"이 {0} 계정은 확인되지 않았습니다. 확인 후 다시 시도하십시오.",
|
||||
"error.msg.discord_guild_permission_denied": "로그인할 수 없습니다.",
|
||||
"error.msg.cannot_get_user_info": "이 {0} 계정에서 사용자 정보를 가져올 수 없습니다",
|
||||
"error.msg.cannot_get_user_info":
|
||||
"이 {0} 계정에서 사용자 정보를 가져올 수 없습니다",
|
||||
"error.param.provider_github": "깃허브",
|
||||
"error.param.provider_google": "구글",
|
||||
"error.param.provider_microsoft": "마이크로소프트",
|
||||
@@ -449,5 +517,5 @@ export default {
|
||||
"common.error.too-long": "최대 {length} 자 까지 입력가능합니다.",
|
||||
"common.error.exact-length": "{length} 자 이어야 합니다.",
|
||||
"common.error.invalid-number": "숫자만 가능합니다.",
|
||||
"common.error.field-required": "이 필드는 필수입니다"
|
||||
"common.error.field-required": "이 필드는 필수입니다",
|
||||
};
|
||||
|
||||
@@ -39,6 +39,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Voer uw tweestapsverificatiecode in",
|
||||
"signIn.oauth.or": "OF",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -64,7 +65,7 @@ export default {
|
||||
"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 email exists.",
|
||||
"Er is een bericht verzonden met een link om uw wachtwoord te resetten als het e-mail adres bestaat.",
|
||||
"resetPassword.button.back": "Terug naar login pagina",
|
||||
"resetPassword.text.resetPassword": "Wachtwoord opnieuw instellen",
|
||||
"resetPassword.text.enterNewPassword": "Voer uw nieuwe wachtwoord in",
|
||||
@@ -226,12 +227,12 @@ export default {
|
||||
// /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 At",
|
||||
"admin.shares.edit.delete.title": "Delete share {id}",
|
||||
"admin.shares.table.username": "Auteur",
|
||||
"admin.shares.table.visitors": "Bezoekers",
|
||||
"admin.shares.table.expires": "Vervalt op",
|
||||
"admin.shares.edit.delete.title": "Verwijder share {id}",
|
||||
"admin.shares.edit.delete.description":
|
||||
"Do you really want to delete this share?",
|
||||
"Weet u zeker dat u deze share wilt verwijderen?",
|
||||
// END /admin/shares
|
||||
// /upload
|
||||
"upload.title": "Uploaden",
|
||||
@@ -274,8 +275,8 @@ export default {
|
||||
"upload.modal.expires.month-plural": "Maanden",
|
||||
"upload.modal.expires.year-singular": "Jaar",
|
||||
"upload.modal.expires.year-plural": "Jaren",
|
||||
"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.title": "Naam en beschrijving",
|
||||
"upload.modal.accordion.name-and-description.name.placeholder": "Naam",
|
||||
"upload.modal.accordion.name-and-description.description.placeholder":
|
||||
"Note for the recipients of this share",
|
||||
"upload.modal.accordion.email.title": "E-mail van de ontvangers",
|
||||
@@ -341,6 +342,9 @@ export default {
|
||||
"admin.config.general.show-home-page": "Toon startpagina",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"Toon of verberg de home pagina",
|
||||
"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.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Verander uw logo door een nieuwe afbeelding te uploaden. De afbeelding moet PNG zijn en het formaat moet 1:1 hebben.",
|
||||
@@ -395,6 +399,9 @@ export default {
|
||||
"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 speed up uploads 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": "Inschakelen",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Of SMTP is ingeschakeld. Stel dit alleen in op true als u de host hebt ingevoerd, poort, e-mail, gebruiker en wachtwoord van uw SMTP-server.",
|
||||
@@ -410,12 +417,15 @@ export default {
|
||||
"admin.config.smtp.password": "Wachtwoord",
|
||||
"admin.config.smtp.password.description": "Wachtwoord van de SMTP-server",
|
||||
"admin.config.smtp.button.test": "Teste-mail verzenden",
|
||||
"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": "Sta registratie toe",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Gebruikers toestaan zich te registreren via sociale login",
|
||||
"admin.config.oauth.ignore-totp": "TOTP negeren",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"TOTP negeren wanneer gebruiker sociale login gebruikt",
|
||||
"admin.config.oauth.ignore-totp.description": "TOTP negeren wanneer gebruiker sociale login gebruikt",
|
||||
"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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Ofdat GitHub login is ingeschakeld",
|
||||
|
||||
@@ -41,6 +41,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Wprowadź kod uwierzytelniania dwuetapowego",
|
||||
"signIn.oauth.or": "LUB",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -345,6 +346,9 @@ export default {
|
||||
"admin.config.general.show-home-page": "Pokaż stronę główną",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"Czy wyświetlać stronę główną",
|
||||
"admin.config.general.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.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Zmień logo, przesyłając nowy obraz. Obraz musi być plikiem PNG i mieć proporcje 1:1.",
|
||||
@@ -397,6 +401,9 @@ export default {
|
||||
"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 speed up uploads 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": "Włączony",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Czy SMTP ma zostać włączony. Ustaw to, tylko jeśli wprowadziłeś host, port, e-mail, nazwę użytkownika i hasło serwera SMTP.",
|
||||
@@ -412,12 +419,15 @@ export default {
|
||||
"admin.config.smtp.password": "Hasło",
|
||||
"admin.config.smtp.password.description": "Hasło serwera SMTP",
|
||||
"admin.config.smtp.button.test": "Wyślij testowego e-maila",
|
||||
"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": "Zezwól na rejestrację",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Zezwalaj użytkownikom na rejestrację za pomocą konta społecznościowego",
|
||||
"admin.config.oauth.ignore-totp": "Ignoruj TOTP",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Czy zignorować TOTP, kiedy użytkownik loguje się za pomocą konta społecznościowego",
|
||||
"admin.config.oauth.ignore-totp.description": "Czy zignorować TOTP, kiedy użytkownik loguje się za pomocą konta społecznościowego",
|
||||
"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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Czy login na GitHub jest włączony",
|
||||
|
||||
@@ -41,6 +41,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Insira seu código de autenticação de dois fatores",
|
||||
"signIn.oauth.or": "OU",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -347,6 +348,9 @@ export default {
|
||||
"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",
|
||||
"admin.config.general.session-duration.description":
|
||||
"Tempo em horas após o qual um usuário deve iniciar a sessão novamente (padrão: 3 meses).",
|
||||
"admin.config.general.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Alterar o seu logo carregando uma nova imagem. A imagem deve ser PNG e deve ter o formato 1:1.",
|
||||
@@ -403,6 +407,10 @@ export default {
|
||||
"admin.config.share.chunk-size": "Tamanho do pedaço",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Ajuste o tamanho do pedaço (em bytes) para seus uploads equilibrarem eficiência e confiabilidade de acordo com sua conexão com a internet. Pedaços menores podem aumentar as taxas de sucesso para conexões instáveis, enquanto partes maiores aceleram uploads para conexões estáveis.",
|
||||
"admin.config.share.auto-open-share-modal":
|
||||
"Abertura automática do modal de criação de compartilhamento",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"O modal de criação de compartilhamento aparece automaticamente quando um usuário seleciona arquivos, eliminando a necessidade de clicar manualmente no botão.",
|
||||
"admin.config.smtp.enabled": "Ativado",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Se o SMTP está habilitado. Apenas defina como verdadeiro se você digitou o servidor, porta, e-mail, usuário e senha do seu servidor SMTP.",
|
||||
@@ -418,12 +426,15 @@ export default {
|
||||
"admin.config.smtp.password": "Senha",
|
||||
"admin.config.smtp.password.description": "Senha do servidor SMTP",
|
||||
"admin.config.smtp.button.test": "Enviar email de teste",
|
||||
"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": "Permitir registro",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Permitir que os usuários se registrem através do login de redes sociais",
|
||||
"admin.config.oauth.ignore-totp": "Ignorar TOTP",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Ignorar o TOTP quando usuário usando login social",
|
||||
"admin.config.oauth.ignore-totp.description": "Ignorar o TOTP quando usuário usando login social",
|
||||
"admin.config.oauth.disable-password": "Desativar login por senha",
|
||||
"admin.config.oauth.disable-password.description": "Se deseja desativar o login por senha\nCertifique-se de que um provedor OAuth está configurado corretamente antes de ativar essa configuração para evitar ser bloqueado.",
|
||||
"admin.config.oauth.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Se o login GitHub está habilitado",
|
||||
|
||||
@@ -38,6 +38,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Пожалуйста, введите код Вашей 2-х факторной аутентификации",
|
||||
"signIn.oauth.or": "ИЛИ",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -272,7 +273,8 @@ export default {
|
||||
"upload.modal.expires.year-plural": "Года (лет)",
|
||||
"upload.modal.accordion.name-and-description.title": "Имя и описание",
|
||||
"upload.modal.accordion.name-and-description.name.placeholder": "Имя",
|
||||
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share",
|
||||
"upload.modal.accordion.name-and-description.description.placeholder":
|
||||
"Note for the recipients of this share",
|
||||
"upload.modal.accordion.email.title": "Получатели письма",
|
||||
"upload.modal.accordion.email.placeholder": "Получатели e-mail",
|
||||
"upload.modal.accordion.email.invalid-email":
|
||||
@@ -335,6 +337,9 @@ export default {
|
||||
"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.logo": "Логотип",
|
||||
"admin.config.general.logo.description":
|
||||
"Измените свой логотип, загрузив новое изображение. Изображение должно быть PNG и должно иметь формат 1:1.",
|
||||
@@ -383,9 +388,14 @@ export default {
|
||||
"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.zip-compression-level.description":
|
||||
"Регулировка уровня баланса между размером файла и скоростью сжатия. Допустимые значения от 0 до 9, с 0 без сжатия, а 9 - максимальное сжатие. ",
|
||||
"admin.config.share.chunk-size": "Размер чанка",
|
||||
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks speed up uploads for stable connections.",
|
||||
"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 speed up uploads 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": "Включено",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Включено ли SMTP. Установите значение true только если вы ввели хост, порт, email, пользователь и пароль вашего SMTP-сервера.",
|
||||
@@ -401,12 +411,15 @@ export default {
|
||||
"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.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.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description": "Включен ли логин на GitHub",
|
||||
"admin.config.oauth.github-client-id": "ID клиента GitHub",
|
||||
|
||||
@@ -40,6 +40,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Prosim vnesite vašo kodo dvofaktorske avtentikacije",
|
||||
"signIn.oauth.or": "ALI",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -339,6 +340,9 @@ export default {
|
||||
"admin.config.general.show-home-page": "Prikaži domačo stran",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"Ali prikazati domačo stran",
|
||||
"admin.config.general.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.logo": "Logotip",
|
||||
"admin.config.general.logo.description":
|
||||
"Naložite novo sliko, da spremenite logotip. Datoteka mora biti tipa PNG in imeti razmerje 1:1.",
|
||||
@@ -390,6 +394,9 @@ export default {
|
||||
"admin.config.share.chunk-size": "Velikost delcev",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Prilagodite velikost delcev (v bajtih) vaših nalaganj, da uravnovesite med učinkovitostjo in zanesljivostjo glede na vašo internetno povezavo. Manjša velikost delcev lahko zviša uspešnost nalaganj pri nestabilni povezavi, medtem ko večja velikost delcev poviša hitrost nalaganja pri stabilni povezavi.",
|
||||
"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": "Omogočeno",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Če je SMTP omogočen. Omogočite samo, če ste vnesli strežnik, vrata, e-pošto, uporabniško ime in geslo vašega SMTP strežnika.",
|
||||
@@ -405,12 +412,15 @@ export default {
|
||||
"admin.config.smtp.password": "Geslo",
|
||||
"admin.config.smtp.password.description": "Geslo SMTP strežnika",
|
||||
"admin.config.smtp.button.test": "Pošlji testno sporočilo",
|
||||
"admin.config.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": "Dovoli registracijo",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Dovoli registracijo uporabnika prek družbenih omrežij",
|
||||
"admin.config.oauth.ignore-totp": "Ignoriraj TOTP",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Če ignorirati TOTP, ko se uporabnik registrira prek družbenih omrežij",
|
||||
"admin.config.oauth.ignore-totp.description": "Če ignorirati TOTP, ko se uporabnik registrira prek družbenih omrežij",
|
||||
"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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Če je dovoljena prijava z GitHub računom",
|
||||
|
||||
@@ -40,6 +40,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Унесите свој двофакторски код за аутентификацију",
|
||||
"signIn.oauth.or": "Или",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -335,6 +336,9 @@ export default {
|
||||
"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.logo": "Лого",
|
||||
"admin.config.general.logo.description":
|
||||
"Промените свој логотип тако што ћете отпремити нову слику. Слика мора да буде PNG и треба да има формат 1:1.",
|
||||
@@ -386,6 +390,9 @@ export default {
|
||||
"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 speed up uploads 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": "Омогућено",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Да ли је SMTP омогућен. Поставите ово на тачно само ако сте унели хост, порт, е-пошту, корисника и лозинку вашег SMTP сервера.",
|
||||
@@ -401,12 +408,15 @@ export default {
|
||||
"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.oauth.allow-registration": "Дозволи регистрацију",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Дозволите корисницима да се региструју путем друштвене пријаве",
|
||||
"admin.config.oauth.ignore-totp": "Занемари ТОТП",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Да ли да игноришете ТОТП када корисник користи пријаву на друштвеним мрежама",
|
||||
"admin.config.oauth.ignore-totp.description": "Да ли да игноришете ТОТП када корисник користи пријаву на друштвеним мрежама",
|
||||
"admin.config.oauth.disable-password": "Disable password login",
|
||||
"admin.config.oauth.disable-password.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Да ли је пријављивање на GitHub омогућено",
|
||||
|
||||
@@ -39,6 +39,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Vänligen ange din tvåfaktorsautentiseringskod",
|
||||
"signIn.oauth.or": "ELLER",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -337,6 +338,9 @@ export default {
|
||||
"admin.config.general.show-home-page": "Visa startsidan",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"Om du vill visa startsidan",
|
||||
"admin.config.general.session-duration": "Session Duration",
|
||||
"admin.config.general.session-duration.description":
|
||||
"Time in hours after which a user must log in again (default: 3 months).",
|
||||
"admin.config.general.logo": "Logotyp",
|
||||
"admin.config.general.logo.description":
|
||||
"Ändra din logotyp genom att ladda upp en ny bild. Bilden måste vara en PNG och bör ha formatet 1:1.",
|
||||
@@ -388,6 +392,9 @@ export default {
|
||||
"admin.config.share.chunk-size": "Bitstorleken",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"Justera bitstorleken (i bytes) för dina uppladdningar för att balansera effektivitet och tillförlitlighet enligt din internetanslutning. Mindre bitar kan öka framgångsgraden för instabila anslutningar, medan större bitar snabbar upp uppladdningar för stabila anslutningar.",
|
||||
"admin.config.share.auto-open-share-modal": "Auto open create share modal",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
|
||||
"admin.config.smtp.enabled": "Aktiverad",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Om SMTP skall vara aktiverat. Ange endast detta som sant om du angav adress, port, e-post, användare och lösenord för din SMTP-server.",
|
||||
@@ -403,12 +410,15 @@ export default {
|
||||
"admin.config.smtp.password": "Lösenord",
|
||||
"admin.config.smtp.password.description": "Lösenord för SMTP-servern",
|
||||
"admin.config.smtp.button.test": "Skicka testmeddelande",
|
||||
"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": "Tillåt registrering",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Tillåt användare att registrera sig via social inloggning",
|
||||
"admin.config.oauth.ignore-totp": "Ignorera TOTP",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"Om du vill ignorera TOTP när användaren använder social inloggning",
|
||||
"admin.config.oauth.ignore-totp.description": "Om du vill ignorera TOTP när användaren använder social inloggning",
|
||||
"admin.config.oauth.disable-password": "Disable password login",
|
||||
"admin.config.oauth.disable-password.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Om GitHub-inloggning är aktiverad",
|
||||
|
||||
@@ -38,6 +38,7 @@ export default {
|
||||
"signIn.notify.totp-required.title": "ยืนยันตรวจสอบสิทธิ์สองปัจจัย",
|
||||
"signIn.notify.totp-required.description": "กรุณาใส่รหัสยืนยันตัวตนสองปัจจัย",
|
||||
"signIn.oauth.or": "OR",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -329,6 +330,9 @@ export default {
|
||||
"admin.config.general.show-home-page": "แสดงหน้าแรก",
|
||||
"admin.config.general.show-home-page.description":
|
||||
"หากติ๊ก เว็บไซต์จะแสดงหน้าหลักเวลาเข้าถึง URL หลัก",
|
||||
"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.logo": "โลโก้",
|
||||
"admin.config.general.logo.description":
|
||||
"เปลี่ยนโลโก้โดยอัปโหลดรูปภาพใหม่ รูปภาพต้องเป็น PNG และควรมีขนาดอัตราส่วน 1:1",
|
||||
@@ -381,6 +385,9 @@ export default {
|
||||
"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 speed up uploads 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": "เปิด",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"เปิดใช้งาน SMTP สำหรับการส่งอีเมล์์์์์์ เปิดได้เท่านั้นต่อเมื่อคุณใส่ข้อมูลโฮสต์ พอร์ต อีเมล์ ผู้ใช้ และรหัสผ่านของเซิร์ฟเวอร์ SMTP ของคุณ",
|
||||
@@ -396,12 +403,15 @@ export default {
|
||||
"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.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.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.oauth.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Whether GitHub login is enabled",
|
||||
|
||||
530
frontend/src/i18n/translations/tr-TR.ts
Normal file
530
frontend/src/i18n/translations/tr-TR.ts
Normal file
@@ -0,0 +1,530 @@
|
||||
export default {
|
||||
// Navbar
|
||||
"navbar.upload": "Yükle",
|
||||
"navbar.signin": "Giriş Yap",
|
||||
"navbar.home": "Ana Sayfa",
|
||||
"navbar.signup": "Kaydol",
|
||||
"navbar.links.shares": "Paylaşımlarım",
|
||||
"navbar.links.reverse": "Tersine Paylaşımlar",
|
||||
"navbar.avatar.account": "Hesabım",
|
||||
"navbar.avatar.admin": "Yönetim",
|
||||
"navbar.avatar.signout": "Çıkış Yap",
|
||||
// END navbar
|
||||
// /
|
||||
"home.title": "<h>Kişisel barındırılan</h> bir dosya paylaşım platformu.",
|
||||
"home.description":
|
||||
"Kişisel dosyalarınızı WeTransfer gibi üçüncü tarafların eline gerçekten vermek istiyor musunuz?",
|
||||
"home.bullet.a.name": "Kişisel Barındırılan",
|
||||
"home.bullet.a.description": "Pingvin Share'i kendi makinenizde barındırın.",
|
||||
"home.bullet.b.name": "Gizlilik",
|
||||
"home.bullet.b.description":
|
||||
"Dosyalarınız sizin dosyalarınızdır ve asla üçüncü şahısların ellerinde bulunmamalıdır.",
|
||||
"home.bullet.c.name": "Can sıkıcı dosya boyutu sınırı yok",
|
||||
"home.bullet.c.description":
|
||||
"İstediğiniz kadar büyük dosya yükleyin. Sınırınız sadece sabit diskiniz olacaktır.",
|
||||
"home.button.start": "Başlayalım",
|
||||
"home.button.source": "Kaynak kodu",
|
||||
// END /
|
||||
// /auth/signin
|
||||
"signin.title": "Tekrar hoşgeldiniz",
|
||||
"signin.description": "Henüz bir hesabınız yok mu?",
|
||||
"signin.button.signup": "Kaydol",
|
||||
"signin.input.email-or-username": "Eposta veya kullanıcı adı",
|
||||
"signin.input.email-or-username.placeholder": "E-Posta veya kullanıcı adı",
|
||||
"signin.input.password": "Şifre",
|
||||
"signin.input.password.placeholder": "Şifreniz",
|
||||
"signin.button.submit": "Giriş Yap",
|
||||
"signIn.notify.totp-required.title": "İki faktörlü kimlik doğrulama gerekli",
|
||||
"signIn.notify.totp-required.description":
|
||||
"Lütfen iki faktörlü doğrulama kodunuzu girin",
|
||||
"signIn.oauth.or": "YA DA",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
"signIn.oauth.discord": "Discord",
|
||||
"signIn.oauth.oidc": "OpenID",
|
||||
// END /auth/signin
|
||||
// /auth/signup
|
||||
"signup.title": "Bir hesap oluştur",
|
||||
"signup.description": "Zaten bir hesabınız mı var?",
|
||||
"signup.button.signin": "Giriş Yap",
|
||||
"signup.input.username": "Kullanıcı Adı",
|
||||
"signup.input.username.placeholder": "Kullanıcı adınız",
|
||||
"signup.input.email": "E-Posta",
|
||||
"signup.input.email.placeholder": "E-Posta adresiniz",
|
||||
"signup.button.submit": "Haydi Başlayalım",
|
||||
// END /auth/signup
|
||||
// /auth/totp
|
||||
"totp.title": "İki Faktörlü Doğrulama",
|
||||
"totp.button.signIn": "Giriş Yap",
|
||||
// END /auth/totp
|
||||
// /auth/reset-password
|
||||
"resetPassword.title": "Şifrenizi mi unuttunuz?",
|
||||
"resetPassword.description": "Şifrenizi sıfırlamak için E-Postanızı girin.",
|
||||
"resetPassword.notify.success":
|
||||
"E-postanız mevcutsa, şifrenizi sıfırlamak için bağlantı içeren bir mesaj gönderilmiştir.",
|
||||
"resetPassword.button.back": "Giriş sayfasına geri dön",
|
||||
"resetPassword.text.resetPassword": "Şifreyi sıfırla",
|
||||
"resetPassword.text.enterNewPassword": "Yeni şifrenizi girin",
|
||||
"resetPassword.input.password": "Yeni şifre",
|
||||
"resetPassword.notify.passwordReset": "Şifreniz başarıyla sıfırlandı.",
|
||||
// /account
|
||||
"account.title": "Hesabım",
|
||||
"account.card.info.title": "Hesap Bilgisi",
|
||||
"account.card.info.username": "Kullanıcı Adı",
|
||||
"account.card.info.email": "E-Posta",
|
||||
"account.notify.info.success": "Hesap başarıyla güncellendi",
|
||||
"account.card.password.title": "Şifre",
|
||||
"account.card.password.old": "Eski şifre",
|
||||
"account.card.password.new": "Yeni şifre",
|
||||
"account.card.password.noPasswordSet":
|
||||
"Belirlenmiş bir şifreniz yok. E-posta ve şifre ile oturum açmak istiyorsanız bir şifre belirlemeniz gerekir.",
|
||||
"account.notify.password.success": "Şifre başarıyla değiştirildi",
|
||||
"account.card.oauth.title": "Sosyal Medya girişi",
|
||||
"account.card.oauth.github": "GitHub",
|
||||
"account.card.oauth.google": "Google",
|
||||
"account.card.oauth.microsoft": "Microsoft",
|
||||
"account.card.oauth.discord": "Discord",
|
||||
"account.card.oauth.oidc": "OpenID",
|
||||
"account.card.oauth.link": "Bağlantı",
|
||||
"account.card.oauth.unlink": "Bağlantıyı kes",
|
||||
"account.card.oauth.unlinked": "Bağlantısız",
|
||||
"account.modal.unlink.title": "Hesabın bağlantısını kaldır",
|
||||
"account.modal.unlink.description":
|
||||
"Sosyal hesaplarınızın bağlantısını kesmek, kullanıcı adınızı ve şifrenizi hatırlamıyorsanız hesabınızı kaybetmenize neden olabilir.",
|
||||
"account.notify.oauth.unlinked.success": "Bağlantı Başarıyla Kaldırıldı",
|
||||
"account.card.security.title": "Güvenlik",
|
||||
"account.card.security.totp.enable.description":
|
||||
"İki faktörlü doğrulamayı aktif etmek için şu anki şifrenizi girin",
|
||||
"account.card.security.totp.disable.description":
|
||||
"İki faktörlü doğrulamayı kaldırmak için şu anki şifrenizi girin",
|
||||
"account.card.security.totp.button.start": "Başlat",
|
||||
"account.modal.totp.title": "2FA aç",
|
||||
"account.modal.totp.step1": "Adım 1: Kimlik doğrulayıcınızı ekleyin",
|
||||
"account.modal.totp.step2": "Adım 2: Kodunuzu doğrulayın",
|
||||
"account.modal.totp.enterManually": "Manuel olarak girin",
|
||||
"account.modal.totp.code": "Kod",
|
||||
"common.button.clickToCopy": "Kopyalamak için tıkla",
|
||||
"account.modal.totp.verify": "Doğrula",
|
||||
"account.notify.totp.disable": "2FA başarıyla kaldırıldı",
|
||||
"account.notify.totp.enable": "2FA başarıyla etkinleştirildi",
|
||||
"account.card.language.title": "Dil",
|
||||
"account.card.language.description":
|
||||
"Proje topluluk tarafından çevrilmiştir. Bazı diller eksik olabilir.",
|
||||
"account.card.color.title": "Renk Şeması",
|
||||
// ThemeSwitcher.tsx
|
||||
"account.theme.dark": "Koyu",
|
||||
"account.theme.light": "Açık",
|
||||
"account.theme.system": "Sistem",
|
||||
"account.button.delete": "Hesabı sil",
|
||||
"account.modal.delete.title": "Hesabı sil",
|
||||
"account.modal.delete.description":
|
||||
"Tüm aktif paylaşımlarınız dahil hesabınızı gerçekten silmek istiyor musunuz?",
|
||||
// END /account
|
||||
// /account/shares
|
||||
"account.shares.title": "Paylaşımlarım",
|
||||
"account.shares.title.empty": "Burası bomboş 👀",
|
||||
"account.shares.description.empty": "Hiç paylaşımınız yok.",
|
||||
"account.shares.button.create": "Bir tane oluşturun",
|
||||
"account.shares.info.title": "Bilgiler paylaşın",
|
||||
"account.shares.table.id": "ID",
|
||||
"account.shares.table.name": "İsim",
|
||||
"account.shares.table.description": "Açıklama",
|
||||
"account.shares.table.visitors": "Ziyaretçiler",
|
||||
"account.shares.table.expiresAt": "Sona erme tarihi",
|
||||
"account.shares.table.createdAt": "Oluşturulma tarihi",
|
||||
"account.shares.table.size": "Boyut",
|
||||
"account.shares.modal.share-informations": "Bilgiler paylaşın",
|
||||
"account.shares.modal.share-link": "Bağlantıyı paylaş",
|
||||
"account.shares.modal.delete.title": "{share} paylaşımını sil",
|
||||
"account.shares.modal.delete.description":
|
||||
"Bu paylaşımı silmek istediğinize emin misiniz?",
|
||||
// END /account/shares
|
||||
// /account/reverseShares
|
||||
"account.reverseShares.title": "Tersine Paylaşımlar",
|
||||
"account.reverseShares.description":
|
||||
"Ters paylaşım, harici kullanıcıların bir paylaşım oluşturmasına olanak tanıyan benzersiz bir URL oluşturmanızı sağlar.",
|
||||
"account.reverseShares.title.empty": "Burası bomboş 👀",
|
||||
"account.reverseShares.description.empty": "Hiç tersine paylaşımınız yok.",
|
||||
// showCreateReverseShareModal.tsx
|
||||
"account.reverseShares.modal.title": "Tersine paylaşım oluşturun",
|
||||
"account.reverseShares.modal.expiration.label": "Sona erme",
|
||||
"account.reverseShares.modal.expiration.minute-singular": "Dakika",
|
||||
"account.reverseShares.modal.expiration.minute-plural": "Dakika",
|
||||
"account.reverseShares.modal.expiration.hour-singular": "Saat",
|
||||
"account.reverseShares.modal.expiration.hour-plural": "Saat",
|
||||
"account.reverseShares.modal.expiration.day-singular": "Gün",
|
||||
"account.reverseShares.modal.expiration.day-plural": "Gün",
|
||||
"account.reverseShares.modal.expiration.week-singular": "Hafta",
|
||||
"account.reverseShares.modal.expiration.week-plural": "Hafta",
|
||||
"account.reverseShares.modal.expiration.month-singular": "Ay",
|
||||
"account.reverseShares.modal.expiration.month-plural": "Ay",
|
||||
"account.reverseShares.modal.expiration.year-singular": "Yıl",
|
||||
"account.reverseShares.modal.expiration.year-plural": "Yıl",
|
||||
"account.reverseShares.modal.max-size.label": "Maks paylaşım boyutu",
|
||||
"account.reverseShares.modal.send-email": "E-Posta bildirimi gönder",
|
||||
"account.reverseShares.modal.send-email.description":
|
||||
"Bu tersine paylaşım bağlantısıyla bir paylaşım oluşturulduğunda e-posta bildirimi gönderin.",
|
||||
"account.reverseShares.modal.max-use.label": "Maks Kullanım",
|
||||
"account.reverseShares.modal.max-use.description":
|
||||
"Bu URL'nin bir paylaşım oluşturmak için kullanılabileceği maksimum sayı.",
|
||||
"account.reverseShare.never-expires":
|
||||
"Bu tersine paylaşım asla sona ermeyecek.",
|
||||
"account.reverseShare.expires-on":
|
||||
"Bu tersine paylaşım {expiration} tarihinde sona erecek.",
|
||||
"account.reverseShares.table.no-shares": "Henüz paylaşım oluşturulmadı",
|
||||
"account.reverseShares.table.count.singular": "paylaşım",
|
||||
"account.reverseShares.table.count.plural": "paylaşım",
|
||||
"account.reverseShares.table.shares": "Paylaşım",
|
||||
"account.reverseShares.table.remaining": "Kalan kullanımların",
|
||||
"account.reverseShares.table.max-size": "Maks paylaşım boyutu",
|
||||
"account.reverseShares.table.expires": "Sona erme tarihi",
|
||||
"account.reverseShares.modal.reverse-share-link":
|
||||
"Tersine paylaşım bağlantısı",
|
||||
"account.reverseShares.modal.delete.title": "Tersine paylaşımı sil",
|
||||
"account.reverseShares.modal.delete.description":
|
||||
"Bu tersine paylaşımı gerçekten silmek istiyor musunuz? Bunu yaparsanız, ilişkili paylaşımlar da silinecektir.",
|
||||
// END /account/reverseShares
|
||||
// /admin
|
||||
"admin.title": "Yönetim",
|
||||
"admin.button.users": "Kullanıcı yönetimi",
|
||||
"admin.button.shares": "Paylaşım yönetimi",
|
||||
"admin.button.config": "Konfigürasyon",
|
||||
"admin.version": "Sürüm",
|
||||
// END /admin
|
||||
// /admin/users
|
||||
"admin.users.title": "Kullanıcı yönetimi",
|
||||
"admin.users.table.username": "Kullanıcı Adı",
|
||||
"admin.users.table.email": "E-Posta",
|
||||
"admin.users.table.admin": "Yönetici",
|
||||
"admin.users.edit.update.title": "{username} kullanıcısını güncelle",
|
||||
"admin.users.edit.update.admin-privileges": "Yönetici ayrıcalıkları",
|
||||
"admin.users.edit.update.change-password.title": "Şifreyi değiştir",
|
||||
"admin.users.edit.update.change-password.field": "Yeni şifre",
|
||||
"admin.users.edit.update.change-password.button": "Yeni şifreyi kaydet",
|
||||
"admin.users.edit.update.notify.password.success":
|
||||
"Şifre başarıyla değiştirildi",
|
||||
"admin.users.edit.delete.title": "{username} kullanıcısını sil",
|
||||
"admin.users.edit.delete.description":
|
||||
"Bu kullanıcıyı ve tüm paylaşımlarını gerçekten silmek istiyor musunuz?",
|
||||
// showCreateUserModal.tsx
|
||||
"admin.users.modal.create.title": "Kullanıcı oluştur",
|
||||
"admin.users.modal.create.username": "Kullanıcı Adı",
|
||||
"admin.users.modal.create.email": "E-Posta",
|
||||
"admin.users.modal.create.password": "Şifre",
|
||||
"admin.users.modal.create.manual-password": "Şifreyi manuel olarak ayarla",
|
||||
"admin.users.modal.create.manual-password.description":
|
||||
"İşaretlenmezse, kullanıcı şifresini ayarlamak için bağlantı içeren bir e-posta alacaktır.",
|
||||
"admin.users.modal.create.admin": "Yönetici ayrıcalıkları",
|
||||
"admin.users.modal.create.admin.description":
|
||||
"İşaretlenirse, kullanıcı yönetici paneline erişebilir.",
|
||||
// END /admin/users
|
||||
// /admin/shares
|
||||
"admin.shares.title": "Paylaşım yönetimi",
|
||||
"admin.shares.table.id": "Paylaşım ID",
|
||||
"admin.shares.table.username": "Yapımcı",
|
||||
"admin.shares.table.visitors": "Ziyaretçi",
|
||||
"admin.shares.table.expires": "Sona erme tarihi",
|
||||
"admin.shares.edit.delete.title": "{id} paylaşımını sil",
|
||||
"admin.shares.edit.delete.description":
|
||||
"Bu paylaşımı gerçekten silmek istiyor musun?",
|
||||
// END /admin/shares
|
||||
// /upload
|
||||
"upload.title": "Yükle",
|
||||
"upload.notify.generic-error":
|
||||
"Paylaşımını bitirirken bir hata meydana geldi.",
|
||||
"upload.notify.count-failed": "{count} dosya yüklenemedi. Yeniden deneniyor.",
|
||||
// Dropzone.tsx
|
||||
"upload.dropzone.title": "Dosya yükle",
|
||||
"upload.dropzone.description":
|
||||
"Paylaşmak için dosyaları buraya sürükleyin. Sadece {maxSize} boyutundan küçük dosyalar kabul edilir.",
|
||||
"upload.dropzone.notify.file-too-big":
|
||||
"Dosyalarınızın boyutu {maxSize} paylaşım sınırını geçti.",
|
||||
// FileList.tsx
|
||||
"upload.filelist.name": "İsim",
|
||||
"upload.filelist.size": "Boyut",
|
||||
// showCreateUploadModal.tsx
|
||||
"upload.modal.title": "Paylaşım Oluştur",
|
||||
"upload.modal.link.error.invalid":
|
||||
"Sadece harf, sayı, alt çizgi ve kısa çizgi içerebilir",
|
||||
"upload.modal.link.error.taken": "Bu bağlantı halen kullanımda",
|
||||
"upload.modal.not-signed-in": "Oturum açmadınız",
|
||||
"upload.modal.not-signed-in-description":
|
||||
"Paylaşımınızı manuel olarak silemeyecek ve ziyaret sayısını göremeyeceksiniz.",
|
||||
"upload.modal.expires.never": "asla",
|
||||
"upload.modal.expires.never-long": "Sona Ermez",
|
||||
"upload.modal.expires.error.too-long":
|
||||
"Son kullanma tarihi {max} maksimum son kullanma tarihini aşıyor.",
|
||||
"upload.modal.link.label": "Bağlantı",
|
||||
"upload.modal.expires.label": "Sona erme tarihi",
|
||||
"upload.modal.expires.minute-singular": "Dakika",
|
||||
"upload.modal.expires.minute-plural": "Dakika",
|
||||
"upload.modal.expires.hour-singular": "Saat",
|
||||
"upload.modal.expires.hour-plural": "Saat",
|
||||
"upload.modal.expires.day-singular": "Gün",
|
||||
"upload.modal.expires.day-plural": "Gün",
|
||||
"upload.modal.expires.week-singular": "Hafta",
|
||||
"upload.modal.expires.week-plural": "Hafta",
|
||||
"upload.modal.expires.month-singular": "Ay",
|
||||
"upload.modal.expires.month-plural": "Ay",
|
||||
"upload.modal.expires.year-singular": "Yıl",
|
||||
"upload.modal.expires.year-plural": "Yıl",
|
||||
"upload.modal.accordion.name-and-description.title": "İsim ve açıklama",
|
||||
"upload.modal.accordion.name-and-description.name.placeholder": "İsim",
|
||||
"upload.modal.accordion.name-and-description.description.placeholder":
|
||||
"Bu paylaşımın alıcıları için not",
|
||||
"upload.modal.accordion.email.title": "E-Posta alıcıları",
|
||||
"upload.modal.accordion.email.placeholder": "E-Posta alıcılarını yazın",
|
||||
"upload.modal.accordion.email.invalid-email": "Geçersiz E-Posta adresi",
|
||||
"upload.modal.accordion.security.title": "Güvenlik seçenekleri",
|
||||
"upload.modal.accordion.security.password.label": "Şifre koruması",
|
||||
"upload.modal.accordion.security.password.placeholder": "Şifresiz",
|
||||
"upload.modal.accordion.security.max-views.label": "En fazla görüntüleme",
|
||||
"upload.modal.accordion.security.max-views.placeholder": "Sınır yok",
|
||||
// showCompletedUploadModal.tsx
|
||||
"upload.modal.completed.never-expires": "Bu paylaşım asla sona ermeyecek.",
|
||||
"upload.modal.completed.expires-on":
|
||||
"Bu paylaşım {expiration} tarihinde sona erecek.",
|
||||
"upload.modal.completed.share-ready": "Paylaşım hazır",
|
||||
// END /upload
|
||||
// /share/[id]
|
||||
"share.title": "Paylaş {shareId}",
|
||||
"share.description": "Seninle ne paylaştığıma bak!",
|
||||
"share.error.visitor-limit-exceeded.title": "Ziyaretçi sınırı aşıldı",
|
||||
"share.error.visitor-limit-exceeded.description":
|
||||
"Bu paylaşımdaki ziyaretçi sınırı aşıldı.",
|
||||
"share.error.removed.title": "Paylaşım kaldırıldı",
|
||||
"share.error.not-found.title": "Paylaşım bulunamadı",
|
||||
"share.error.not-found.description": "Aradığınız paylaşım bulunmuyor.",
|
||||
"share.modal.password.title": "Şifre gerekli",
|
||||
"share.modal.password.description":
|
||||
"Bu paylaşıma erişmek için lütfen paylaşımın şifresini girin.",
|
||||
"share.modal.password": "Şifre",
|
||||
"share.modal.error.invalid-password": "Geçersiz şifre",
|
||||
"share.button.download-all": "Tümünü indir",
|
||||
"share.notify.download-all-preparing":
|
||||
"Paylaşım hazırlanıyor. Birkaç dakika içinde tekrar deneyin.",
|
||||
"share.modal.file-link": "Dosya bağlantısı",
|
||||
"share.table.name": "İsim",
|
||||
"share.table.size": "Boyut",
|
||||
"share.modal.file-preview.error.not-supported.title":
|
||||
"Önizleme desteklenmiyor",
|
||||
"share.modal.file-preview.error.not-supported.description":
|
||||
"Bu dosyanın önizlemesi desteklenmiyor. Lütfen indirin ve öyle inceleyin.",
|
||||
// END /share/[id]
|
||||
// /share/[id]/edit
|
||||
"share.edit.title": "{shareId} düzenle",
|
||||
"share.edit.append-upload": "Dosya ekle",
|
||||
"share.edit.notify.generic-error":
|
||||
"Paylaşımını bitirirken bir hata meydana geldi.",
|
||||
"share.edit.notify.save-success": "Paylaşım başarıyla güncellendi",
|
||||
// END /share/[id]/edit
|
||||
// /admin/config
|
||||
"admin.config.title": "Konfigürasyon",
|
||||
"admin.config.category.general": "Genel",
|
||||
"admin.config.category.share": "Paylaş",
|
||||
"admin.config.category.email": "E-Posta",
|
||||
"admin.config.category.smtp": "SMTP",
|
||||
"admin.config.category.oauth": "Sosyal Medya Girişi",
|
||||
"admin.config.general.app-name": "Uygulama adı",
|
||||
"admin.config.general.app-name.description": "Uygulamanın adı",
|
||||
"admin.config.general.app-url": "Uygulama URL'si",
|
||||
"admin.config.general.app-url.description":
|
||||
"Pingvin Share'in hangi bağlantıda kullanılacağı",
|
||||
"admin.config.general.show-home-page": "Ana sayfayı göster",
|
||||
"admin.config.general.show-home-page.description": "Ana sayfanın görünürlüğü",
|
||||
"admin.config.general.session-duration": "Oturum Süresi",
|
||||
"admin.config.general.session-duration.description":
|
||||
"Kullanıcının ne kadar sürede bir tekrar giriş yapacağı (normalde 3 ay).",
|
||||
"admin.config.general.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"Yeni resim yükleyerek logo'nuzu değiştirin. Resim PNG ve 1'e 1 ölçekte olmalı.",
|
||||
"admin.config.general.logo.placeholder": "Resim seç",
|
||||
"admin.config.email.enable-share-email-recipients":
|
||||
"E-Posta alıcılarını paylaşmayı etkinleştirin",
|
||||
"admin.config.email.enable-share-email-recipients.description":
|
||||
"E-Postaların alıcıları paylaşmasına izin verilip verilmeyeceği. Bunu yalnızca SMTP'yi etkinleştirdiyseniz etkinleştirin.",
|
||||
"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":
|
||||
"Paylaşım alıcılarına gönderilecek mesaj. Kullanılabilir değişkenler:\n {creator} - Paylaşımı oluşturan kişinin kullanıcı adı\n {shareUrl} - Paylaşımın URL'si\n {desc} - Paylaşımın açıklaması\n {expires} - Paylaşımın son kullanma tarihi\n Değişkenler gerçek değerle değiştirilecektir.",
|
||||
"admin.config.email.reverse-share-subject": "Tersine paylaşım konusu",
|
||||
"admin.config.email.reverse-share-subject.description":
|
||||
"Birisi sizin ters paylaşım bağlantınızla bir paylaşım oluşturduğunda gönderilen e-postanın konusu.",
|
||||
"admin.config.email.reverse-share-message": "Tersine paylaşım mesajı",
|
||||
"admin.config.email.reverse-share-message.description":
|
||||
"Birisi sizin tersine paylaşım bağlantınızla bir paylaşım oluşturduğunda gönderilen mesaj. {shareUrl}, oluşturucunun adı ve paylaşım URL'si ile değiştirilecektir.",
|
||||
"admin.config.email.reset-password-subject": "Şifre sıfırlama konusu",
|
||||
"admin.config.email.reset-password-subject.description":
|
||||
"Bir kullanıcı şifre sıfırlama talebinde bulunduğunda gönderilen e-postanın konusu.",
|
||||
"admin.config.email.reset-password-message": "Şifre sıfırlama mesajı",
|
||||
"admin.config.email.reset-password-message.description":
|
||||
"Bir kullanıcı şifre sıfırlama talebinde bulunduğunda gönderilecek mesaj. {url} şifre sıfırlama URL'si ile değiştirilecektir.",
|
||||
"admin.config.email.invite-subject": "Davet konusu",
|
||||
"admin.config.email.invite-subject.description":
|
||||
"Yönetici bir kullanıcıyı davet ettiğinde gönderilen e-postanın konusu.",
|
||||
"admin.config.email.invite-message": "Davet mesajı",
|
||||
"admin.config.email.invite-message.description":
|
||||
"Yönetici bir kullanıcıyı davet ettiğinde gönderilen mesaj. {url} davet URL'si ve {password} şifre ile değiştirilecektir.",
|
||||
"admin.config.share.allow-registration": "Kayda izin ver",
|
||||
"admin.config.share.allow-registration.description":
|
||||
"Kaydın izin verilip verilmeyeceği",
|
||||
"admin.config.share.allow-unauthenticated-shares":
|
||||
"Giriş yapmamış kullanıcılara izin ver",
|
||||
"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.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",
|
||||
"admin.config.share.zip-compression-level.description":
|
||||
"Dosya boyutu ve sıkıştırma hızı arasında denge kurmak için seviyeyi ayarlayın. Geçerli değerler 0 ile 9 arasında değişir; 0 sıkıştırma yok ve 9 maksimum sıkıştırma anlamına gelir. ",
|
||||
"admin.config.share.chunk-size": "Yığın boyutu",
|
||||
"admin.config.share.chunk-size.description":
|
||||
"İnternet bağlantınıza göre verimlilik ve güvenilirliği dengelemek için yüklemeleriniz için yığın boyutunu (bayt cinsinden) ayarlayın. Daha küçük parçalar kararsız bağlantılar için başarı oranlarını artırabilirken, daha büyük parçalar kararlı bağlantılar için yüklemeleri hızlandırır.",
|
||||
"admin.config.share.auto-open-share-modal":
|
||||
"Paylaşım oluşturma modalini otomatik aç",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"Bir kullanıcı dosyaları seçtiğinde paylaşım oluşturma modu otomatik olarak görünür ve düğmeye manuel olarak tıklama ihtiyacını ortadan kaldırır.",
|
||||
"admin.config.smtp.enabled": "Etkinleştirildi",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"SMTP'nin etkin olup olmadığı. Bunu yalnızca SMTP sunucunuzun ana bilgisayarını, bağlantı noktasını, e-postasını, kullanıcısını ve şifresini girdiyseniz true olarak ayarlayın.",
|
||||
"admin.config.smtp.host": "Host",
|
||||
"admin.config.smtp.host.description": "SMTP sunucusunun hostu",
|
||||
"admin.config.smtp.port": "Port",
|
||||
"admin.config.smtp.port.description": "SMTP sunucusunun portu",
|
||||
"admin.config.smtp.email": "E-Posta",
|
||||
"admin.config.smtp.email.description":
|
||||
"E-Postaların hangi adresten gönderileceği",
|
||||
"admin.config.smtp.username": "Kullanıcı Adı",
|
||||
"admin.config.smtp.username.description": "SMTP sunucusunun kullanıcı adı",
|
||||
"admin.config.smtp.password": "Şifre",
|
||||
"admin.config.smtp.password.description": "SMTP sunucusunun şifresi",
|
||||
"admin.config.smtp.button.test": "Test e-postası gönder",
|
||||
"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": "Kayıtlara izin ver",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"Sosyal Medya kayıtlarına izin verilip verilmeyeceği",
|
||||
"admin.config.oauth.ignore-totp": "2FA görmezden gel",
|
||||
"admin.config.oauth.ignore-totp.description": "Sosyal Medya ile giriş yapıldıktıktan sonra 2FA görmezden gelinip gelinmeyeceği",
|
||||
"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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"GitHub girişine izin verilip verilmeyeceği",
|
||||
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||
"admin.config.oauth.github-client-id.description":
|
||||
"GitHub OAuth uygulamasının Client ID'si",
|
||||
"admin.config.oauth.github-client-secret": "GitHub Client Secret",
|
||||
"admin.config.oauth.github-client-secret.description":
|
||||
"GitHub OAuth uygulamasının Client Secret'i",
|
||||
"admin.config.oauth.google-enabled": "Google",
|
||||
"admin.config.oauth.google-enabled.description":
|
||||
"Google girişi izin verilip verilmeyeceği",
|
||||
"admin.config.oauth.google-client-id": "Google Client ID",
|
||||
"admin.config.oauth.google-client-id.description":
|
||||
"Google OAuth uygulamasının Client ID'si",
|
||||
"admin.config.oauth.google-client-secret": "Google Client Secret",
|
||||
"admin.config.oauth.google-client-secret.description":
|
||||
"Google OAuth uygulamasının Client Secret'i",
|
||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||
"admin.config.oauth.microsoft-enabled.description":
|
||||
"Microsoft girişine izin verilip verilmeyeceği",
|
||||
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
||||
"admin.config.oauth.microsoft-tenant.description":
|
||||
"Microsoft OAuth uygulamasının Tenant kimliği\nyaygın: Hem kişisel Microsoft hesabına hem de Microsoft Entra ID'den bir iş veya okul hesabına sahip kullanıcılar uygulamada oturum açabilir. kuruluşlar: Yalnızca Microsoft Entra ID'den iş veya okul hesabı olan kullanıcılar uygulamada oturum açabilir.\ntüketiciler: Yalnızca kişisel Microsoft hesabı olan kullanıcılar uygulamada oturum açabilir.\nMicrosoft Entra Tenant etki alanı adı veya GUID biçimindeki Tenant kimliği: Yalnızca belirli bir Microsoft Entra Tenant kullanıcısı (iş veya okul hesabına sahip dizin üyeleri veya kişisel Microsoft hesabına sahip dizin konukları) uygulamada oturum açabilir.",
|
||||
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
||||
"admin.config.oauth.microsoft-client-id.description":
|
||||
"Microsoft OAuth uygulamasının Client ID'si",
|
||||
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
|
||||
"admin.config.oauth.microsoft-client-secret.description":
|
||||
"Microsoft OAuth uygulamasının Client Secret'i",
|
||||
"admin.config.oauth.discord-enabled": "Discord",
|
||||
"admin.config.oauth.discord-enabled.description":
|
||||
"Discord girişine izin verilip verilmeyeceği",
|
||||
"admin.config.oauth.discord-limited-guild": "Discord limitli sunucu ID'si",
|
||||
"admin.config.oauth.discord-limited-guild.description":
|
||||
"Oturum açmayı belirli bir sunucudaki kullanıcılarla sınırlayın. Devre dışı bırakmak için boş bırakın.",
|
||||
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
||||
"admin.config.oauth.discord-client-id.description":
|
||||
"Discord OAuth uygulamasının Client ID'si",
|
||||
"admin.config.oauth.discord-client-secret": "Discord Client secret",
|
||||
"admin.config.oauth.discord-client-secret.description":
|
||||
"Discord OAuth uygulamasının Client Secret'i",
|
||||
"admin.config.oauth.oidc-enabled": "OpenID Bağlantısı",
|
||||
"admin.config.oauth.oidc-enabled.description":
|
||||
"OpenID girişine izin verilip verilmeyeceği",
|
||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Keşfetme URI'si",
|
||||
"admin.config.oauth.oidc-discovery-uri.description":
|
||||
"OpenID Connect OAuth uygulamasının Keşfetme URI'si",
|
||||
"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-client-id": "OpenID Connect Client ID",
|
||||
"admin.config.oauth.oidc-client-id.description":
|
||||
"OpenID Connect OAuth uygulamasının Client ID'si",
|
||||
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
||||
"admin.config.oauth.oidc-client-secret.description":
|
||||
"OpenID Connect OAuth uygulamasının Client Secret'i",
|
||||
// 404
|
||||
"404.description": "Haydaa, böyle bir sayfa yok.",
|
||||
"404.button.home": "Beni eve götür",
|
||||
// error
|
||||
"error.title": "Hata",
|
||||
"error.description": "Haydaa!",
|
||||
"error.button.back": "Geri dön",
|
||||
"error.msg.default": "Bir şeyler ters gitti.",
|
||||
"error.msg.access_denied":
|
||||
"Doğrulama aşamasını iptal ettin, lütfen yeniden dene.",
|
||||
"error.msg.expired_token":
|
||||
"Doğrulama aşaması çok uzun sürdü, lütfen yeniden dene.",
|
||||
"error.msg.invalid_token": "Dahili Hata",
|
||||
"error.msg.no_user": "Bu {0} hesabına bağlı kullanıcı mevcut değil.",
|
||||
"error.msg.no_email": "Bu {0} hesaptan e-posta adresi alınamıyor.",
|
||||
"error.msg.already_linked": "Bu {0} hesabı zaten başka bir hesaba bağlı.",
|
||||
"error.msg.not_linked": "Bu {0} hesabı henüz bir hesaba bağlı değil.",
|
||||
"error.msg.unverified_account":
|
||||
"Bu {0} hesabı doğrulanmamış, lütfen doğruladıktan sonra yeniden dene.",
|
||||
"error.msg.discord_guild_permission_denied": "Giriş yapmana izin verilmiyor.",
|
||||
"error.msg.cannot_get_user_info":
|
||||
"Bu {0} hesabından kullanıcı bilgilerinizi alamıyorum.",
|
||||
"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 Bağlantısı",
|
||||
// Common translations
|
||||
"common.button.save": "Kaydet",
|
||||
"common.button.create": "Oluştur",
|
||||
"common.button.submit": "Gönder",
|
||||
"common.button.delete": "Sil",
|
||||
"common.button.cancel": "İptal",
|
||||
"common.button.confirm": "Onayla",
|
||||
"common.button.disable": "Etkisizleştir",
|
||||
"common.button.share": "Paylaş",
|
||||
"common.button.generate": "Oluştur",
|
||||
"common.button.done": "Tamam",
|
||||
"common.text.link": "Bağlantı",
|
||||
"common.text.navigate-to-link": "Bağlantıya git",
|
||||
"common.text.or": "ya da",
|
||||
"common.button.go-back": "Geri dön",
|
||||
"common.button.go-home": "Ana sayfaya dön",
|
||||
"common.notify.copied": "Bağlantınız kopyalandı",
|
||||
"common.success": "Başarılı",
|
||||
"common.error": "Hata",
|
||||
"common.error.unknown": "Bilinmeyen hata meydana geldi",
|
||||
"common.error.invalid-email": "Geçersiz E-Posta adresi",
|
||||
"common.error.too-short": "En azından {length} karakter olmalı",
|
||||
"common.error.too-long": "En fazla {length} karakter olmalı",
|
||||
"common.error.exact-length": "Tam tamına {length} karakter olmalı",
|
||||
"common.error.invalid-number": "Bir sayı olmalı",
|
||||
"common.error.field-required": "Bu alan gerekli",
|
||||
};
|
||||
@@ -38,6 +38,7 @@ export default {
|
||||
"signIn.notify.totp-required.description":
|
||||
"Будь ласка, введіть код Вашої 2-х факторної аутентифікації",
|
||||
"signIn.oauth.or": "АБО",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -337,6 +338,9 @@ export default {
|
||||
"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.logo": "Логотип",
|
||||
"admin.config.general.logo.description":
|
||||
"Змініть свій логотип, завантаживши нове зображення. Зображення має бути PNG і повинно мати формат 1:1.",
|
||||
@@ -393,6 +397,9 @@ export default {
|
||||
"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 speed up uploads 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": "Увімкнено",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"Чи увімкнено SMTP. Встановіть значення true тільки якщо ви ввели хост, порт, email, користувач і пароль вашого SMTP-сервера.",
|
||||
@@ -408,12 +415,15 @@ export default {
|
||||
"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.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.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description":
|
||||
"Чи ввімкнено логін на GitHub",
|
||||
|
||||
@@ -34,6 +34,7 @@ export default {
|
||||
"signIn.notify.totp-required.title": "请继续两步验证",
|
||||
"signIn.notify.totp-required.description": "请输入一次性验证码",
|
||||
"signIn.oauth.or": "或",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "谷歌",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -312,6 +313,9 @@ export default {
|
||||
"admin.config.general.app-url.description": "Pingvin Share 的 URL 地址",
|
||||
"admin.config.general.show-home-page": "显示首页",
|
||||
"admin.config.general.show-home-page.description": "是否显示首页",
|
||||
"admin.config.general.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.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"上传你的个性化 Logo,图片必须是长宽比 1:1 的 PNG 格式",
|
||||
@@ -358,9 +362,11 @@ export default {
|
||||
"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.chunk-size.description":
|
||||
"根据你的互联网连接情况调整上传文件的块大小(以字节为单位),以平衡效率和可靠性。 较小的块有助于提高不稳定网络环境中的上传成功率,而较大的块则可以加快稳定网络环境中的上传速度。",
|
||||
"admin.config.share.auto-open-share-modal": "自动打开创建共享对话框",
|
||||
"admin.config.share.auto-open-share-modal.description": "每当用户选择完将要被上传的文件后,自动打开创建共享的对话框。",
|
||||
"admin.config.share.auto-open-share-modal.description":
|
||||
"每当用户选择完将要被上传的文件后,自动打开创建共享的对话框。",
|
||||
"admin.config.smtp.enabled": "启用",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"是否开启 SMTP,仅当输入主机名、端口、发送邮箱、用户名和密码后开启",
|
||||
@@ -375,12 +381,15 @@ export default {
|
||||
"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.oauth.allow-registration": "允许注册",
|
||||
"admin.config.oauth.allow-registration.description":
|
||||
"允许用户通过登录社交账号来注册",
|
||||
"admin.config.oauth.ignore-totp": "忽略两步验证",
|
||||
"admin.config.oauth.ignore-totp.description":
|
||||
"用户通过社交账号登录时是否忽略两步验证",
|
||||
"admin.config.oauth.ignore-totp.description": "用户通过社交账号登录时是否忽略两步验证",
|
||||
"admin.config.oauth.disable-password": "Disable password login",
|
||||
"admin.config.oauth.disable-password.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description": "是否启用 GitHub 账号登录",
|
||||
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||
|
||||
@@ -35,6 +35,7 @@ export default {
|
||||
"signIn.notify.totp-required.title": "請繼續兩步驗證",
|
||||
"signIn.notify.totp-required.description": "請輸入一次性驗證碼",
|
||||
"signIn.oauth.or": "OR",
|
||||
"signIn.oauth.signInWith": "Sign in with",
|
||||
"signIn.oauth.github": "GitHub",
|
||||
"signIn.oauth.google": "Google",
|
||||
"signIn.oauth.microsoft": "Microsoft",
|
||||
@@ -313,6 +314,9 @@ export default {
|
||||
"admin.config.general.app-url.description": "Pingvin Share 的 URL",
|
||||
"admin.config.general.show-home-page": "顯示首頁",
|
||||
"admin.config.general.show-home-page.description": "是否顯示首頁",
|
||||
"admin.config.general.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.logo": "Logo",
|
||||
"admin.config.general.logo.description":
|
||||
"上傳個性化 Logo,圖片必須是長寬比 1:1 的 PNG 格式",
|
||||
@@ -361,6 +365,9 @@ export default {
|
||||
"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 speed up uploads 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": "啟用",
|
||||
"admin.config.smtp.enabled.description":
|
||||
"是否開啟 SMTP,需輸入Host、Port、發送郵箱、使用者名稱和密碼後才有作用",
|
||||
@@ -375,12 +382,15 @@ export default {
|
||||
"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.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.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.github-enabled": "GitHub",
|
||||
"admin.config.oauth.github-enabled.description": "啟用 Github 登入",
|
||||
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "pingvin-share",
|
||||
"version": "0.25.0",
|
||||
"version": "0.27.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "pingvin-share",
|
||||
"version": "0.25.0",
|
||||
"version": "0.27.0",
|
||||
"devDependencies": {
|
||||
"conventional-changelog-cli": "^3.0.0"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pingvin-share",
|
||||
"version": "0.25.0",
|
||||
"version": "0.27.0",
|
||||
"scripts": {
|
||||
"format": "cd frontend && npm run format && cd ../backend && npm run format",
|
||||
"lint": "cd frontend && npm run lint && cd ../backend && npm run lint",
|
||||
|
||||
Reference in New Issue
Block a user