Compare commits

..

11 Commits

Author SHA1 Message Date
Elias Schneider
51478b6a9f release: 1.3.0 2024-11-14 19:10:37 +01:00
Elias Schneider
6f45c3b1fb fix: use current window url instead of app url in frontend 2024-11-14 19:10:11 +01:00
Elias Schneider
ff2dd81055 chore(translations): update translations via Crowdin (#665)
* New translations en-us.ts (Spanish)

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

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

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

* New translations en-us.ts (Thai)

* New translations en-us.ts (Thai)

* New translations en-us.ts (Hungarian)

* New translations en-us.ts (Hungarian)

* New translations en-us.ts (French)

* New translations en-us.ts (French)

* New translations en-us.ts (Russian)

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

* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Hungarian)

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

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

* New translations en-us.ts (Thai)

* New translations en-us.ts (French)

* New translations en-us.ts (Russian)

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

* New translations en-us.ts (Bulgarian)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

* New translations en-us.ts (Vietnamese)

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

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

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

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Hungarian)

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

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

* New translations en-us.ts (Thai)

* New translations en-us.ts (French)

* New translations en-us.ts (Russian)

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

* New translations en-us.ts (Bulgarian)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

* New translations en-us.ts (Vietnamese)

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

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

* New translations en-us.ts (Arabic, Egypt)
2024-11-14 18:57:20 +01:00
Elias Schneider
c26de4e881 fix: throw error if no disk space is left 2024-11-14 18:44:32 +01:00
Elias Schneider
4ef7ebb062 fix: improve share completed dialog redirection for reverse shares 2024-11-14 18:41:34 +01:00
Elias Schneider
d870b5721a refactor: run formatter 2024-11-14 18:04:18 +01:00
Elias Schneider
d8084e401d feat: add confirm dialog for leaving the page if an upload is in progress 2024-11-14 18:04:11 +01:00
Elias Schneider
e1a5d19544 fix: prevent deletion of last admin account 2024-11-14 17:39:06 +01:00
Elias Schneider
4ce64206be feat: add 'secureCookies' configuration variable to explicitly set the secure flag and prevent confusion 2024-11-14 17:31:17 +01:00
Elias Schneider
77eef187b7 chore(translations): fix wrong label for Serbian latin and cyrillic 2024-10-31 17:01:03 +01:00
Elias Schneider
c7138bcf5d chore(translations): update translations via Crowdin (#657)
* New translations en-us.ts (Serbian (Latin))

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

* New translations en-us.ts (German)

* New translations en-us.ts (French)

* New translations en-us.ts (French)

* New translations en-us.ts (German)

* New translations en-us.ts (German)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (German)

* New translations en-us.ts (Spanish)
2024-10-31 16:57:43 +01:00
57 changed files with 722 additions and 695 deletions

View File

@@ -1,3 +1,19 @@
## [1.3.0](https://github.com/stonith404/pingvin-share/compare/v1.2.4...v1.3.0) (2024-11-14)
### Features
* add 'secureCookies' configuration variable to explicitly set the secure flag and prevent confusion ([4ce6420](https://github.com/stonith404/pingvin-share/commit/4ce64206be7440a99299e1ed238ced7408c0563d))
* add confirm dialog for leaving the page if an upload is in progress ([d8084e4](https://github.com/stonith404/pingvin-share/commit/d8084e401d7572b2d6e38ffa20cb678a0fb0e615))
### Bug Fixes
* improve share completed dialog redirection for reverse shares ([4ef7ebb](https://github.com/stonith404/pingvin-share/commit/4ef7ebb0622f16d2d2c4d114b5fc15298e2ba24f))
* prevent deletion of last admin account ([e1a5d19](https://github.com/stonith404/pingvin-share/commit/e1a5d195448e3d741b77fb982ce515489a360562))
* throw error if no disk space is left ([c26de4e](https://github.com/stonith404/pingvin-share/commit/c26de4e881edfe6c7db617c0aeba89871397ebe2))
* use current window url instead of app url in frontend ([6f45c3b](https://github.com/stonith404/pingvin-share/commit/6f45c3b1fbf4a95b29e5742878b55a1afa0b8886))
## [1.2.4](https://github.com/stonith404/pingvin-share/compare/v1.2.3...v1.2.4) (2024-10-24) ## [1.2.4](https://github.com/stonith404/pingvin-share/compare/v1.2.3...v1.2.4) (2024-10-24)

View File

@@ -1,12 +1,12 @@
{ {
"name": "pingvin-share-backend", "name": "pingvin-share-backend",
"version": "1.2.4", "version": "1.3.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pingvin-share-backend", "name": "pingvin-share-backend",
"version": "1.2.4", "version": "1.3.0",
"dependencies": { "dependencies": {
"@nestjs/cache-manager": "^2.2.2", "@nestjs/cache-manager": "^2.2.2",
"@nestjs/common": "^10.4.3", "@nestjs/common": "^10.4.3",

View File

@@ -1,6 +1,6 @@
{ {
"name": "pingvin-share-backend", "name": "pingvin-share-backend",
"version": "1.2.4", "version": "1.3.0",
"scripts": { "scripts": {
"build": "nest build", "build": "nest build",
"dev": "cross-env NODE_ENV=development nest start --watch", "dev": "cross-env NODE_ENV=development nest start --watch",

View File

@@ -20,6 +20,10 @@ const configVariables: ConfigVariables = {
defaultValue: "http://localhost:3000", defaultValue: "http://localhost:3000",
secret: false, secret: false,
}, },
secureCookies: {
type: "boolean",
defaultValue: "false",
},
showHomePage: { showHomePage: {
type: "boolean", type: "boolean",
defaultValue: "true", defaultValue: "true",

View File

@@ -176,7 +176,7 @@ export class AuthController {
request.cookies.access_token, request.cookies.access_token,
); );
const isSecure = this.config.get("general.appUrl").startsWith("https"); const isSecure = this.config.get("general.secureCookies");
response.cookie("access_token", "", { response.cookie("access_token", "", {
maxAge: -1, maxAge: -1,
secure: isSecure, secure: isSecure,

View File

@@ -334,7 +334,7 @@ export class AuthService {
refreshToken?: string, refreshToken?: string,
accessToken?: string, accessToken?: string,
) { ) {
const isSecure = this.config.get("general.appUrl").startsWith("https"); const isSecure = this.config.get("general.secureCookies");
if (accessToken) if (accessToken)
response.cookie("access_token", accessToken, { response.cookie("access_token", accessToken, {
sameSite: "lax", sameSite: "lax",

View File

@@ -3,6 +3,7 @@ import {
HttpException, HttpException,
HttpStatus, HttpStatus,
Injectable, Injectable,
InternalServerErrorException,
NotFoundException, NotFoundException,
} from "@nestjs/common"; } from "@nestjs/common";
import { JwtService } from "@nestjs/jwt"; import { JwtService } from "@nestjs/jwt";
@@ -59,6 +60,13 @@ export class FileService {
const buffer = Buffer.from(data, "base64"); const buffer = Buffer.from(data, "base64");
// Check if there is enough space on the server
const space = await fs.promises.statfs(SHARE_DIRECTORY);
const availableSpace = space.bavail * space.bsize;
if (availableSpace < buffer.byteLength) {
throw new InternalServerErrorException("Not enough space on the server");
}
// Check if share size limit is exceeded // Check if share size limit is exceeded
const fileSizeSum = share.files.reduce( const fileSizeSum = share.files.reduce(
(n, { size }) => n + parseInt(size), (n, { size }) => n + parseInt(size),

View File

@@ -3,6 +3,7 @@ import {
Controller, Controller,
Delete, Delete,
Get, Get,
HttpCode,
Param, Param,
Patch, Patch,
Post, Post,
@@ -14,12 +15,12 @@ import { Response } from "express";
import { GetUser } from "src/auth/decorator/getUser.decorator"; import { GetUser } from "src/auth/decorator/getUser.decorator";
import { AdministratorGuard } from "src/auth/guard/isAdmin.guard"; import { AdministratorGuard } from "src/auth/guard/isAdmin.guard";
import { JwtGuard } from "src/auth/guard/jwt.guard"; import { JwtGuard } from "src/auth/guard/jwt.guard";
import { ConfigService } from "../config/config.service";
import { CreateUserDTO } from "./dto/createUser.dto"; import { CreateUserDTO } from "./dto/createUser.dto";
import { UpdateOwnUserDTO } from "./dto/updateOwnUser.dto"; import { UpdateOwnUserDTO } from "./dto/updateOwnUser.dto";
import { UpdateUserDto } from "./dto/updateUser.dto"; import { UpdateUserDto } from "./dto/updateUser.dto";
import { UserDTO } from "./dto/user.dto"; import { UserDTO } from "./dto/user.dto";
import { UserSevice } from "./user.service"; import { UserSevice } from "./user.service";
import { ConfigService } from "../config/config.service";
@Controller("users") @Controller("users")
export class UserController { export class UserController {
@@ -48,12 +49,15 @@ export class UserController {
} }
@Delete("me") @Delete("me")
@HttpCode(204)
@UseGuards(JwtGuard) @UseGuards(JwtGuard)
async deleteCurrentUser( async deleteCurrentUser(
@GetUser() user: User, @GetUser() user: User,
@Res({ passthrough: true }) response: Response, @Res({ passthrough: true }) response: Response,
) { ) {
const isSecure = this.config.get("general.appUrl").startsWith("https"); await this.userService.delete(user.id);
const isSecure = this.config.get("general.secureCookies");
response.cookie("access_token", "accessToken", { response.cookie("access_token", "accessToken", {
maxAge: -1, maxAge: -1,
@@ -65,7 +69,6 @@ export class UserController {
maxAge: -1, maxAge: -1,
secure: isSecure, secure: isSecure,
}); });
return new UserDTO().from(await this.userService.delete(user.id));
} }
// Global user operations // Global user operations

View File

@@ -2,15 +2,15 @@ import { BadRequestException, Injectable, Logger } from "@nestjs/common";
import { PrismaClientKnownRequestError } from "@prisma/client/runtime/library"; import { PrismaClientKnownRequestError } from "@prisma/client/runtime/library";
import * as argon from "argon2"; import * as argon from "argon2";
import * as crypto from "crypto"; import * as crypto from "crypto";
import { Entry } from "ldapts";
import { AuthSignInDTO } from "src/auth/dto/authSignIn.dto";
import { EmailService } from "src/email/email.service"; import { EmailService } from "src/email/email.service";
import { PrismaService } from "src/prisma/prisma.service"; import { PrismaService } from "src/prisma/prisma.service";
import { inspect } from "util";
import { ConfigService } from "../config/config.service";
import { FileService } from "../file/file.service"; import { FileService } from "../file/file.service";
import { CreateUserDTO } from "./dto/createUser.dto"; import { CreateUserDTO } from "./dto/createUser.dto";
import { UpdateUserDto } from "./dto/updateUser.dto"; import { UpdateUserDto } from "./dto/updateUser.dto";
import { ConfigService } from "../config/config.service";
import { Entry } from "ldapts";
import { AuthSignInDTO } from "src/auth/dto/authSignIn.dto";
import { inspect } from "util";
@Injectable() @Injectable()
export class UserSevice { export class UserSevice {
@@ -89,6 +89,16 @@ export class UserSevice {
}); });
if (!user) throw new BadRequestException("User not found"); if (!user) throw new BadRequestException("User not found");
if (user.isAdmin) {
const userCount = await this.prisma.user.count({
where: { isAdmin: true },
});
if (userCount === 1) {
throw new BadRequestException("Cannot delete the last admin user");
}
}
await Promise.all( await Promise.all(
user.shares.map((share) => this.fileService.deleteAllFiles(share.id)), user.shares.map((share) => this.fileService.deleteAllFiles(share.id)),
); );

View File

@@ -1,12 +1,12 @@
{ {
"name": "pingvin-share-frontend", "name": "pingvin-share-frontend",
"version": "1.2.4", "version": "1.3.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pingvin-share-frontend", "name": "pingvin-share-frontend",
"version": "1.2.4", "version": "1.3.0",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/server": "^11.11.0", "@emotion/server": "^11.11.0",

View File

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

View File

@@ -5,10 +5,9 @@ import { translateOutsideContext } from "../../hooks/useTranslate.hook";
const showReverseShareLinkModal = ( const showReverseShareLinkModal = (
modals: ModalsContextProps, modals: ModalsContextProps,
reverseShareToken: string, reverseShareToken: string,
appUrl: string,
) => { ) => {
const t = translateOutsideContext(); const t = translateOutsideContext();
const link = `${appUrl}/upload/${reverseShareToken}`; const link = `${window.location.origin}/upload/${reverseShareToken}`;
return modals.openModal({ return modals.openModal({
title: t("account.reverseShares.modal.reverse-share-link"), title: t("account.reverseShares.modal.reverse-share-link"),
children: ( children: (

View File

@@ -11,11 +11,10 @@ import CopyTextField from "../upload/CopyTextField";
const showShareInformationsModal = ( const showShareInformationsModal = (
modals: ModalsContextProps, modals: ModalsContextProps,
share: MyShare, share: MyShare,
appUrl: string,
maxShareSize: number, maxShareSize: number,
) => { ) => {
const t = translateOutsideContext(); const t = translateOutsideContext();
const link = `${appUrl}/s/${share.id}`; const link = `${window.location.origin}/s/${share.id}`;
const formattedShareSize = byteToHumanSizeString(share.size); const formattedShareSize = byteToHumanSizeString(share.size);
const formattedMaxShareSize = byteToHumanSizeString(maxShareSize); const formattedMaxShareSize = byteToHumanSizeString(maxShareSize);

View File

@@ -2,13 +2,9 @@ import { Stack, TextInput } from "@mantine/core";
import { ModalsContextProps } from "@mantine/modals/lib/context"; import { ModalsContextProps } from "@mantine/modals/lib/context";
import { translateOutsideContext } from "../../hooks/useTranslate.hook"; import { translateOutsideContext } from "../../hooks/useTranslate.hook";
const showShareLinkModal = ( const showShareLinkModal = (modals: ModalsContextProps, shareId: string) => {
modals: ModalsContextProps,
shareId: string,
appUrl: string,
) => {
const t = translateOutsideContext(); const t = translateOutsideContext();
const link = `${appUrl}/s/${shareId}`; const link = `${window.location.origin}/s/${shareId}`;
return modals.openModal({ return modals.openModal({
title: t("account.shares.modal.share-link"), title: t("account.shares.modal.share-link"),
children: ( children: (

View File

@@ -89,15 +89,11 @@ const ManageShareTable = ({
onClick={() => { onClick={() => {
if (window.isSecureContext) { if (window.isSecureContext) {
clipboard.copy( clipboard.copy(
`${config.get("general.appUrl")}/s/${share.id}`, `${window.location.origin}/s/${share.id}`,
); );
toast.success(t("common.notify.copied")); toast.success(t("common.notify.copied"));
} else { } else {
showShareLinkModal( showShareLinkModal(modals, share.id);
modals,
share.id,
config.get("general.appUrl"),
);
} }
}} }}
> >

View File

@@ -128,9 +128,7 @@ const SignInForm = ({ redirectPath }: { redirectPath: string }) => {
config.get("oauth.disablePassword") config.get("oauth.disablePassword")
) { ) {
setIsRedirectingToOauthProvider(true); setIsRedirectingToOauthProvider(true);
router.push( router.push(getOAuthUrl(window.location.origin, providers.data[0]));
getOAuthUrl(config.get("general.appUrl"), providers.data[0]),
);
} }
}) })
.catch(toast.axiosError); .catch(toast.axiosError);
@@ -208,7 +206,7 @@ const SignInForm = ({ redirectPath }: { redirectPath: string }) => {
key={provider} key={provider}
component="a" component="a"
title={t(`signIn.oauth.${provider}`)} title={t(`signIn.oauth.${provider}`)}
href={getOAuthUrl(config.get("general.appUrl"), provider)} href={getOAuthUrl(window.location.origin, provider)}
variant="light" variant="light"
fullWidth fullWidth
> >

View File

@@ -65,7 +65,7 @@ const FileList = ({
}; };
const copyFileLink = (file: FileMetaData) => { const copyFileLink = (file: FileMetaData) => {
const link = `${config.get("general.appUrl")}/api/shares/${ const link = `${window.location.origin}/api/shares/${
share.id share.id
}/files/${file.id}`; }/files/${file.id}`;

View File

@@ -13,7 +13,6 @@ import CopyTextField from "../CopyTextField";
const showCompletedUploadModal = ( const showCompletedUploadModal = (
modals: ModalsContextProps, modals: ModalsContextProps,
share: CompletedShare, share: CompletedShare,
appUrl: string,
) => { ) => {
const t = translateOutsideContext(); const t = translateOutsideContext();
return modals.openModal({ return modals.openModal({
@@ -21,16 +20,18 @@ const showCompletedUploadModal = (
withCloseButton: false, withCloseButton: false,
closeOnEscape: false, closeOnEscape: false,
title: t("upload.modal.completed.share-ready"), title: t("upload.modal.completed.share-ready"),
children: <Body share={share} appUrl={appUrl} />, children: <Body share={share} />,
}); });
}; };
const Body = ({ share, appUrl }: { share: CompletedShare; appUrl: string }) => { const Body = ({ share }: { share: CompletedShare }) => {
const modals = useModals(); const modals = useModals();
const router = useRouter(); const router = useRouter();
const t = useTranslate(); const t = useTranslate();
const link = `${appUrl}/s/${share.id}`; const isReverseShare = !!router.query["reverseShareToken"];
const link = `${window.location.origin}/s/${share.id}`;
return ( return (
<Stack align="stretch"> <Stack align="stretch">
@@ -65,7 +66,11 @@ const Body = ({ share, appUrl }: { share: CompletedShare; appUrl: string }) => {
<Button <Button
onClick={() => { onClick={() => {
modals.closeAll(); modals.closeAll();
router.push("/upload"); if (isReverseShare) {
router.reload();
} else {
router.push("/upload");
}
}} }}
> >
<FormattedMessage id="common.button.done" /> <FormattedMessage id="common.button.done" />

View File

@@ -19,7 +19,7 @@ import { useForm, yupResolver } from "@mantine/form";
import { useModals } from "@mantine/modals"; import { useModals } from "@mantine/modals";
import { ModalsContextProps } from "@mantine/modals/lib/context"; import { ModalsContextProps } from "@mantine/modals/lib/context";
import moment from "moment"; import moment from "moment";
import { useState } from "react"; import React, { useState } from "react";
import { TbAlertCircle } from "react-icons/tb"; import { TbAlertCircle } from "react-icons/tb";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import * as yup from "yup"; import * as yup from "yup";
@@ -30,7 +30,6 @@ import shareService from "../../../services/share.service";
import { FileUpload } from "../../../types/File.type"; import { FileUpload } from "../../../types/File.type";
import { CreateShare } from "../../../types/share.type"; import { CreateShare } from "../../../types/share.type";
import { getExpirationPreview } from "../../../utils/date.util"; import { getExpirationPreview } from "../../../utils/date.util";
import React from "react";
import toast from "../../../utils/toast.util"; import toast from "../../../utils/toast.util";
const showCreateUploadModal = ( const showCreateUploadModal = (
@@ -38,7 +37,6 @@ const showCreateUploadModal = (
options: { options: {
isUserSignedIn: boolean; isUserSignedIn: boolean;
isReverseShare: boolean; isReverseShare: boolean;
appUrl: string;
allowUnauthenticatedShares: boolean; allowUnauthenticatedShares: boolean;
enableEmailRecepients: boolean; enableEmailRecepients: boolean;
maxExpirationInHours: number; maxExpirationInHours: number;
@@ -101,7 +99,6 @@ const CreateUploadModalBody = ({
options: { options: {
isUserSignedIn: boolean; isUserSignedIn: boolean;
isReverseShare: boolean; isReverseShare: boolean;
appUrl: string;
allowUnauthenticatedShares: boolean; allowUnauthenticatedShares: boolean;
enableEmailRecepients: boolean; enableEmailRecepients: boolean;
maxExpirationInHours: number; maxExpirationInHours: number;
@@ -245,7 +242,7 @@ const CreateUploadModalBody = ({
color: theme.colors.gray[6], color: theme.colors.gray[6],
})} })}
> >
{`${options.appUrl}/s/${form.values.link}`} {`${window.location.origin}/s/${form.values.link}`}
</Text> </Text>
{!options.isReverseShare && ( {!options.isReverseShare && (
<> <>
@@ -461,7 +458,6 @@ const SimplifiedCreateUploadModalModal = ({
options: { options: {
isUserSignedIn: boolean; isUserSignedIn: boolean;
isReverseShare: boolean; isReverseShare: boolean;
appUrl: string;
allowUnauthenticatedShares: boolean; allowUnauthenticatedShares: boolean;
enableEmailRecepients: boolean; enableEmailRecepients: boolean;
maxExpirationInHours: number; maxExpirationInHours: number;

View File

@@ -0,0 +1,42 @@
import { useRouter } from "next/router";
import { useEffect } from "react";
const useConfirmLeave = ({
message,
enabled,
}: {
message: string;
enabled: boolean;
}) => {
const router = useRouter();
useEffect(() => {
if (!enabled) return;
// Show confirmation dialog when route changes
const handleRouteChange = () => {
const confirmLeave = window.confirm(message);
if (!confirmLeave) {
router.events.emit("routeChangeError");
throw "Route change aborted.";
}
};
// Show confirmation when the user tries to leave or reload the page
const handleBeforeUnload = (event: BeforeUnloadEvent) => {
event.preventDefault();
event.returnValue = message;
return message;
};
router.events.on("routeChangeStart", handleRouteChange);
window.addEventListener("beforeunload", handleBeforeUnload);
return () => {
router.events.off("routeChangeStart", handleRouteChange);
window.removeEventListener("beforeunload", handleBeforeUnload);
};
}, [router, message, enabled]);
};
export default useConfirmLeave;

View File

@@ -15,7 +15,7 @@ import polish from "./translations/pl-PL";
import portuguese from "./translations/pt-BR"; import portuguese from "./translations/pt-BR";
import russian from "./translations/ru-RU"; import russian from "./translations/ru-RU";
import slovenian from "./translations/sl-SI"; import slovenian from "./translations/sl-SI";
import serbian from "./translations/sr-SP"; import serbianCyrillic from "./translations/sr-SP";
import swedish from "./translations/sv-SE"; import swedish from "./translations/sv-SE";
import thai from "./translations/th-TH"; import thai from "./translations/th-TH";
import ukrainian from "./translations/uk-UA"; import ukrainian from "./translations/uk-UA";
@@ -25,7 +25,7 @@ import turkish from "./translations/tr-TR";
import czech from "./translations/cs-CZ"; import czech from "./translations/cs-CZ";
import viatnamese from "./translations/vi-VN"; import viatnamese from "./translations/vi-VN";
import bulgarian from "./translations/bg-BG"; import bulgarian from "./translations/bg-BG";
import serbianCyrillic from "./translations/sr-CS"; import serbianLatin from "./translations/sr-CS";
export const LOCALES = { export const LOCALES = {
ENGLISH: { ENGLISH: {
@@ -89,9 +89,14 @@ export const LOCALES = {
messages: thai, messages: thai,
}, },
SERBIAN: { SERBIAN: {
name: "Srpski", name: "Српски",
code: "sr-SP", code: "sr-SP",
messages: serbian, messages: serbianCyrillic,
},
SERBIAN_LATIN: {
name: "Srpski",
code: "sr-CS",
messages: serbianLatin,
}, },
DUTCH: { DUTCH: {
name: "Nederlands", name: "Nederlands",
@@ -163,9 +168,4 @@ export const LOCALES = {
code: "bg-BG", code: "bg-BG",
messages: bulgarian, messages: bulgarian,
}, },
SERBIAN_CYRILLIC: {
name: "Српски",
code: "sr-CS",
messages: serbianCyrillic,
},
}; };

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "رفع", "upload.title": "رفع",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "حدث خطأ أثناء إنهاء مشاركتك.", "upload.notify.generic-error": "حدث خطأ أثناء إنهاء مشاركتك.",
"upload.notify.count-failed": "فشل رفع {count} ملفات. تجري المحاولة مجددًا.", "upload.notify.count-failed": "فشل رفع {count} ملفات. تجري المحاولة مجددًا.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "رفع الملفات", "upload.dropzone.title": "رفع الملفات",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "اسم التطبيق", "admin.config.general.app-name.description": "اسم التطبيق",
"admin.config.general.app-url": "رابط التطبيق", "admin.config.general.app-url": "رابط التطبيق",
"admin.config.general.app-url.description": "الرابط الذي تكون مشاركة Pingvin صالحة عليه", "admin.config.general.app-url.description": "الرابط الذي تكون مشاركة Pingvin صالحة عليه",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "إظهار الصفحة الرئيسية", "admin.config.general.show-home-page": "إظهار الصفحة الرئيسية",
"admin.config.general.show-home-page.description": "تحديد ما إذا كان سيتم عرض الصفحة الرئيسية", "admin.config.general.show-home-page.description": "تحديد ما إذا كان سيتم عرض الصفحة الرئيسية",
"admin.config.general.session-duration": "مدة الجلسة", "admin.config.general.session-duration": "مدة الجلسة",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Upload", "upload.title": "Upload",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "An error occurred while finishing your share.", "upload.notify.generic-error": "An error occurred while finishing your share.",
"upload.notify.count-failed": "{count} files failed to upload. Trying again.", "upload.notify.count-failed": "{count} files failed to upload. Trying again.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Upload files", "upload.dropzone.title": "Upload files",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Name of the application", "admin.config.general.app-name.description": "Name of the application",
"admin.config.general.app-url": "App URL", "admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "On which URL Pingvin Share is available", "admin.config.general.app-url.description": "On which URL Pingvin Share is available",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Show home page", "admin.config.general.show-home-page": "Show home page",
"admin.config.general.show-home-page.description": "Whether to show the home page", "admin.config.general.show-home-page.description": "Whether to show the home page",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Nahrát", "upload.title": "Nahrát",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Při dokončování vašeho sdílení došlo k chybě.", "upload.notify.generic-error": "Při dokončování vašeho sdílení došlo k chybě.",
"upload.notify.count-failed": "{count} souborů se nepodařilo nahrát. Zkouším to znovu.", "upload.notify.count-failed": "{count} souborů se nepodařilo nahrát. Zkouším to znovu.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Nahrát soubory", "upload.dropzone.title": "Nahrát soubory",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Název aplikace", "admin.config.general.app-name.description": "Název aplikace",
"admin.config.general.app-url": "URL aplikace", "admin.config.general.app-url": "URL aplikace",
"admin.config.general.app-url.description": "Na kterém URL je Pingvin Share k dispozici", "admin.config.general.app-url.description": "Na kterém URL je Pingvin Share k dispozici",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Zobrazit domovskou stránku", "admin.config.general.show-home-page": "Zobrazit domovskou stránku",
"admin.config.general.show-home-page.description": "Zda zobrazovat domovskou stránku", "admin.config.general.show-home-page.description": "Zda zobrazovat domovskou stránku",
"admin.config.general.session-duration": "Délka trvání relace", "admin.config.general.session-duration": "Délka trvání relace",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Upload", "upload.title": "Upload",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Der opstod en fejl under afslutningen af din deling.", "upload.notify.generic-error": "Der opstod en fejl under afslutningen af din deling.",
"upload.notify.count-failed": "{count} files failed to upload. Trying again.", "upload.notify.count-failed": "{count} files failed to upload. Trying again.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Upload filer", "upload.dropzone.title": "Upload filer",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Navnet på applikationen", "admin.config.general.app-name.description": "Navnet på applikationen",
"admin.config.general.app-url": "App URL", "admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "På hvilken URL Pingvin Share er tilgængelig", "admin.config.general.app-url.description": "På hvilken URL Pingvin Share er tilgængelig",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Vis forside", "admin.config.general.show-home-page": "Vis forside",
"admin.config.general.show-home-page.description": "Om forsiden skal vises", "admin.config.general.show-home-page.description": "Om forsiden skal vises",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",

View File

@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "Selbst gehostet", "home.bullet.a.name": "Selbst gehostet",
"home.bullet.a.description": "Betreibe Pingvin Share auf deinem eigenen Server.", "home.bullet.a.description": "Betreibe Pingvin Share auf deinem eigenen Server.",
"home.bullet.b.name": "Privatsphäre", "home.bullet.b.name": "Privatsphäre",
"home.bullet.b.description": "Ihre Dateien gehören Ihnen und werden niemals von Dritten zugänglich gemacht.", "home.bullet.b.description": "Ihre Dateien gehören Ihnen und sind niemals durch Dritte zugänglich.",
"home.bullet.c.name": "Keine lästige Dateigrößenbegrenzung", "home.bullet.c.name": "Keine lästige Dateigrößenbegrenzung",
"home.bullet.c.description": " Laden Sie so große Dateien hoch, wie Sie wollen. Nur Ihre Festplatte ist Ihr Limit.", "home.bullet.c.description": "Laden Sie so große Dateien hoch, wie Sie wollen. Nur Ihre Festplatte ist Ihr Limit.",
"home.button.start": "Lege los", "home.button.start": "Lege los",
"home.button.source": "Quellcode", "home.button.source": "Quellcode",
// END / // END /
@@ -26,13 +26,13 @@ export default {
"signin.title": "Willkommen zurück", "signin.title": "Willkommen zurück",
"signin.description": "Du hast noch kein Konto?", "signin.description": "Du hast noch kein Konto?",
"signin.button.signup": "Registrieren", "signin.button.signup": "Registrieren",
"signin.input.email-or-username": "Email oder Benutzername", "signin.input.email-or-username": "E-Mail oder Benutzername",
"signin.input.email-or-username.placeholder": "Deine Email Adresse oder Benutzername", "signin.input.email-or-username.placeholder": "Deine Email Adresse oder Benutzername",
"signin.input.password": "Passwort", "signin.input.password": "Passwort",
"signin.input.password.placeholder": "Dein Passwort", "signin.input.password.placeholder": "Dein Passwort",
"signin.button.submit": "Anmelden", "signin.button.submit": "Anmelden",
"signIn.notify.totp-required.title": "Zwei-Faktor-Authentifizierung benötigt", "signIn.notify.totp-required.title": "Zwei-Faktor-Authentifizierung benötigt",
"signIn.notify.totp-required.description": "Bitte füge deinen Zwei-Faktor-Authentifizierungscode ein", "signIn.notify.totp-required.description": "Bitte gebe deinen Zwei-Faktor-Authentifizierungscode ein",
"signIn.oauth.or": "ODER", "signIn.oauth.or": "ODER",
"signIn.oauth.signInWith": "Anmelden mit", "signIn.oauth.signInWith": "Anmelden mit",
"signIn.oauth.github": "GitHub", "signIn.oauth.github": "GitHub",
@@ -47,8 +47,8 @@ export default {
"signup.button.signin": "Anmelden", "signup.button.signin": "Anmelden",
"signup.input.username": "Benutzername", "signup.input.username": "Benutzername",
"signup.input.username.placeholder": "Dein Benutzername", "signup.input.username.placeholder": "Dein Benutzername",
"signup.input.email": "Email", "signup.input.email": "E-Mail",
"signup.input.email.placeholder": "Deine Emailadresse", "signup.input.email.placeholder": "Deine E-Mail-Adresse",
"signup.button.submit": "Lass uns loslegen", "signup.button.submit": "Lass uns loslegen",
// END /auth/signup // END /auth/signup
// /auth/totp // /auth/totp
@@ -57,13 +57,13 @@ export default {
// END /auth/totp // END /auth/totp
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Passwort vergessen?", "resetPassword.title": "Passwort vergessen?",
"resetPassword.description": "Gib deine Email Adresse ein, um dein Passwort zurückzusetzen.", "resetPassword.description": "Gib deine E-Mail-Adresse ein, um dein Passwort zurückzusetzen.",
"resetPassword.notify.success": "Wir haben dir einen Link gesendet, unter dem du dein Passwort zurücksetzen kannst.", "resetPassword.notify.success": "Wir haben dir einen Link gesendet, unter dem du dein Passwort zurücksetzen kannst.",
"resetPassword.button.back": "Zurück zur Anmeldeseite", "resetPassword.button.back": "Zurück zur Anmeldeseite",
"resetPassword.text.resetPassword": "Passwort zurücksetzen", "resetPassword.text.resetPassword": "Passwort zurücksetzen",
"resetPassword.text.enterNewPassword": "Gib dein neues Passwort ein", "resetPassword.text.enterNewPassword": "Gib dein neues Passwort ein",
"resetPassword.input.password": "Neues Passwort", "resetPassword.input.password": "Neues Passwort",
"resetPassword.notify.passwordReset": "Ihr Passwort wurde erfolgreich zurückgesetzt", "resetPassword.notify.passwordReset": "Ihr Passwort wurde erfolgreich zurückgesetzt.",
// /account // /account
"account.title": "Mein Konto", "account.title": "Mein Konto",
"account.card.info.title": "Kontoinformationen", "account.card.info.title": "Kontoinformationen",
@@ -92,7 +92,7 @@ export default {
"account.card.security.totp.disable.description": "Gib dein aktuelles Passwort ein, um TOTP zu deaktivieren", "account.card.security.totp.disable.description": "Gib dein aktuelles Passwort ein, um TOTP zu deaktivieren",
"account.card.security.totp.button.start": "Starten", "account.card.security.totp.button.start": "Starten",
"account.modal.totp.title": "TOTP aktivieren", "account.modal.totp.title": "TOTP aktivieren",
"account.modal.totp.step1": "Schritt 1: Füge deinen Authenticator hinzu", "account.modal.totp.step1": "Schritt 1: Füge deinen Authentifikator hinzu",
"account.modal.totp.step2": "Schritt 2: Bestätige deinen Code", "account.modal.totp.step2": "Schritt 2: Bestätige deinen Code",
"account.modal.totp.enterManually": "Manuell eingeben", "account.modal.totp.enterManually": "Manuell eingeben",
"account.modal.totp.code": "Code", "account.modal.totp.code": "Code",
@@ -150,7 +150,7 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "Jahr", "account.reverseShares.modal.expiration.year-singular": "Jahr",
"account.reverseShares.modal.expiration.year-plural": "Jahre", "account.reverseShares.modal.expiration.year-plural": "Jahre",
"account.reverseShares.modal.max-size.label": "Maximale Freigabegröße", "account.reverseShares.modal.max-size.label": "Maximale Freigabegröße",
"account.reverseShares.modal.send-email": "E-Mail-Benachrichtigungen senden", "account.reverseShares.modal.send-email": "E-Mail Benachrichtigungen senden",
"account.reverseShares.modal.send-email.description": "Sendet eine E-Mail Benachrichtigung, wenn eine Datei auf Ihrer externen Freigabe hochgeladen wurde.", "account.reverseShares.modal.send-email.description": "Sendet eine E-Mail Benachrichtigung, wenn eine Datei auf Ihrer externen Freigabe hochgeladen wurde.",
"account.reverseShares.modal.simplified": "Einfacher Modus", "account.reverseShares.modal.simplified": "Einfacher Modus",
"account.reverseShares.modal.simplified.description": "Mache es der Person, die die Datei hochlädt, einfach, sie mit dir zu teilen. Sie werden nur den Namen und die Beschreibung der Freigabe ändern können.", "account.reverseShares.modal.simplified.description": "Mache es der Person, die die Datei hochlädt, einfach, sie mit dir zu teilen. Sie werden nur den Namen und die Beschreibung der Freigabe ändern können.",
@@ -190,7 +190,7 @@ export default {
"admin.users.edit.update.change-password.button": "Neues Passwort speichern", "admin.users.edit.update.change-password.button": "Neues Passwort speichern",
"admin.users.edit.update.notify.password.success": "Passwort erfolgreich geändert", "admin.users.edit.update.notify.password.success": "Passwort erfolgreich geändert",
"admin.users.edit.delete.title": "Benutzer löschen: {username}?", "admin.users.edit.delete.title": "Benutzer löschen: {username}?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "Möchtest du wirklich diesen Benutzer mit allen seinen Freigaben löschen?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Benutzer erstellen", "admin.users.modal.create.title": "Benutzer erstellen",
"admin.users.modal.create.username": "Benutzername", "admin.users.modal.create.username": "Benutzername",
@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Upload", "upload.title": "Upload",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Während der Erstellung der Freigabe ist ein Fehler aufgetreten.", "upload.notify.generic-error": "Während der Erstellung der Freigabe ist ein Fehler aufgetreten.",
"upload.notify.count-failed": "{count} Dateien konnten nicht hochgeladen werden. Wird erneut versucht.", "upload.notify.count-failed": "{count} Dateien konnten nicht hochgeladen werden. Wird erneut versucht.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Dateien hochladen", "upload.dropzone.title": "Dateien hochladen",
"upload.dropzone.description": "Ziehe Dateien per Drag'n'Drop hierher, um deine Freigabe zu starten. Wir akzeptieren nur Dateien mit einer Gesamtgröße von bis zu {maxSize}.", "upload.dropzone.description": "Ziehe Dateien per Drag'n'Drop hierher, um deine Freigabe zu starten. Wir akzeptieren nur Dateien mit einer Gesamtgröße von bis zu {maxSize}.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Name der Applikation", "admin.config.general.app-name.description": "Name der Applikation",
"admin.config.general.app-url": "App-URL", "admin.config.general.app-url": "App-URL",
"admin.config.general.app-url.description": "Auf welcher URL Pingvin Share verfügbar ist", "admin.config.general.app-url.description": "Auf welcher URL Pingvin Share verfügbar ist",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Startseite anzeigen", "admin.config.general.show-home-page": "Startseite anzeigen",
"admin.config.general.show-home-page.description": "Ob die Startseite angezeigt werden soll", "admin.config.general.show-home-page.description": "Ob die Startseite angezeigt werden soll",
"admin.config.general.session-duration": "Session-Dauer", "admin.config.general.session-duration": "Session-Dauer",
@@ -382,8 +387,8 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Client-Sekret der Microsoft OAuth-App", "admin.config.oauth.microsoft-client-secret.description": "Client-Sekret der Microsoft OAuth-App",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Discord Anmeldung erlaubt", "admin.config.oauth.discord-enabled.description": "Discord Anmeldung erlaubt",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Discord limitierte Benutzer",
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.", "admin.config.oauth.discord-limited-users.description": "Limitiere die Anmeldung für spezifische Benutzer anhand ihrer Discord ID. Lasse dieses Feld leer, um es zu deaktivieren.",
"admin.config.oauth.discord-limited-guild": "Discord Server-ID", "admin.config.oauth.discord-limited-guild": "Discord Server-ID",
"admin.config.oauth.discord-limited-guild.description": "Die Anmeldung auf Benutzer in einem bestimmten Server beschränken. Leer lassen, um zu deaktivieren.", "admin.config.oauth.discord-limited-guild.description": "Die Anmeldung auf Benutzer in einem bestimmten Server beschränken. Leer lassen, um zu deaktivieren.",
"admin.config.oauth.discord-client-id": "Discord Client-ID", "admin.config.oauth.discord-client-id": "Discord Client-ID",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Μεταφόρτωση", "upload.title": "Μεταφόρτωση",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Παρουσιάστηκε σφάλμα κατά την ολοκλήρωση της κοινής χρήσης σας.", "upload.notify.generic-error": "Παρουσιάστηκε σφάλμα κατά την ολοκλήρωση της κοινής χρήσης σας.",
"upload.notify.count-failed": "Τα αρχεία {count} απέτυχαν να μεταφορτώσουν. Δοκιμάστε ξανά.", "upload.notify.count-failed": "Τα αρχεία {count} απέτυχαν να μεταφορτώσουν. Δοκιμάστε ξανά.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Μεταφόρτωση αρχείων", "upload.dropzone.title": "Μεταφόρτωση αρχείων",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Ονομασία της εφαρμογής", "admin.config.general.app-name.description": "Ονομασία της εφαρμογής",
"admin.config.general.app-url": "URL Εφαρμογής", "admin.config.general.app-url": "URL Εφαρμογής",
"admin.config.general.app-url.description": "Η διεύθυνση URL όπου το Pingvin Share είναι διαθέσιμο", "admin.config.general.app-url.description": "Η διεύθυνση URL όπου το Pingvin Share είναι διαθέσιμο",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Εμφάνιση αρχικής σελίδας", "admin.config.general.show-home-page": "Εμφάνιση αρχικής σελίδας",
"admin.config.general.show-home-page.description": "Εάν θα εμφανίζεται η αρχική σελίδα", "admin.config.general.show-home-page.description": "Εάν θα εμφανίζεται η αρχική σελίδα",
"admin.config.general.session-duration": "Διάρκεια συνεδρίας", "admin.config.general.session-duration": "Διάρκεια συνεδρίας",

View File

@@ -286,9 +286,14 @@ export default {
// /upload // /upload
"upload.title": "Upload", "upload.title": "Upload",
"upload.notify.confirm-leave":
"Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "upload.notify.generic-error":
"An error occurred while finishing your share.", "An error occurred while finishing your share.",
"upload.notify.count-failed": "{count} files failed to upload. Trying again.", "upload.notify.count-failed": "{count} files failed to upload. Trying again.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description":
"This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Upload files", "upload.dropzone.title": "Upload files",
@@ -410,6 +415,9 @@ export default {
"admin.config.general.app-url": "App URL", "admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "admin.config.general.app-url.description":
"On which URL Pingvin Share is available", "On which URL Pingvin Share is available",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description":
"Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Show home page", "admin.config.general.show-home-page": "Show home page",
"admin.config.general.show-home-page.description": "admin.config.general.show-home-page.description":
"Whether to show the home page", "Whether to show the home page",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Subir", "navbar.upload": "Subir",
"navbar.signin": "Iniciar sesión", "navbar.signin": "Iniciar sesión",
"navbar.home": "Inicio", "navbar.home": "Inicio",
"navbar.signup": "Sign up", "navbar.signup": "Registrarse",
"navbar.links.shares": "Mis compartidos", "navbar.links.shares": "Mis compartidos",
"navbar.links.reverse": "Comparticiones inversas", "navbar.links.reverse": "Comparticiones inversas",
"navbar.avatar.account": "Mi cuenta", "navbar.avatar.account": "Mi cuenta",
@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "Autoalojada", "home.bullet.a.name": "Autoalojada",
"home.bullet.a.description": "Aloja Pingvin Share en tu propio equipo.", "home.bullet.a.description": "Aloja Pingvin Share en tu propio equipo.",
"home.bullet.b.name": "Privacidad", "home.bullet.b.name": "Privacidad",
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.", "home.bullet.b.description": "Tus archivos son tuyos y nunca serán accesibles por terceros.",
"home.bullet.c.name": "Sin molestos límites de tamaño de archivo", "home.bullet.c.name": "Sin molestos límites de tamaño de archivo",
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.", "home.bullet.c.description": "Sube archivos del tamaño que desees. Solo el espacio en tu disco duro será tu límite.",
"home.button.start": "Comenzar", "home.button.start": "Comenzar",
"home.button.source": "Código fuente", "home.button.source": "Código fuente",
// END / // END /
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "¿Olvidaste tu contraseña?", "resetPassword.title": "¿Olvidaste tu contraseña?",
"resetPassword.description": "Ingresa tu correo para restablecer tu contraseña.", "resetPassword.description": "Ingresa tu correo para restablecer tu contraseña.",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "Se ha enviado un mensaje con un enlace para restablecer tu contraseña si el correo electrónico proporcionado existe.",
"resetPassword.button.back": "Volver al inicio de sesión", "resetPassword.button.back": "Volver al inicio de sesión",
"resetPassword.text.resetPassword": "Restablecer contraseña", "resetPassword.text.resetPassword": "Restablecer contraseña",
"resetPassword.text.enterNewPassword": "Ingresa tu nueva contraseña", "resetPassword.text.enterNewPassword": "Ingresa tu nueva contraseña",
"resetPassword.input.password": "Nueva contraseña", "resetPassword.input.password": "Nueva contraseña",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.", "resetPassword.notify.passwordReset": "Tu contraseña ha sido restablecida exitosamente.",
// /account // /account
"account.title": "Mi cuenta", "account.title": "Mi cuenta",
"account.card.info.title": "Información de cuenta", "account.card.info.title": "Información de cuenta",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "Contraseña", "account.card.password.title": "Contraseña",
"account.card.password.old": "Anterior contraseña", "account.card.password.old": "Anterior contraseña",
"account.card.password.new": "Nueva contraseña", "account.card.password.new": "Nueva contraseña",
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.", "account.card.password.noPasswordSet": "No tienes una contraseña configurada. Para iniciar sesión usando tu correo electrónico y contraseña, necesitas crear una contraseña.",
"account.notify.password.success": "Contraseña cambiada correctamente", "account.notify.password.success": "Contraseña cambiada correctamente",
"account.card.oauth.title": "Inicio de sesión con red social", "account.card.oauth.title": "Inicio de sesión con red social",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "Desvincular", "account.card.oauth.unlink": "Desvincular",
"account.card.oauth.unlinked": "Desvinculado", "account.card.oauth.unlinked": "Desvinculado",
"account.modal.unlink.title": "Desvincular cuenta", "account.modal.unlink.title": "Desvincular cuenta",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials", "account.modal.unlink.description": "Desvincular tus cuentas sociales puede hacer que pierdas acceso a tu cuenta si no recuerdas tus credenciales de inicio de sesión",
"account.notify.oauth.unlinked.success": "Desvinculado correctamente", "account.notify.oauth.unlinked.success": "Desvinculado correctamente",
"account.card.security.title": "Seguridad", "account.card.security.title": "Seguridad",
"account.card.security.totp.enable.description": "Ingrese su contraseña actual para habilitar TOTP", "account.card.security.totp.enable.description": "Ingrese su contraseña actual para habilitar TOTP",
@@ -121,12 +121,12 @@ export default {
"account.shares.table.name": "Nombre", "account.shares.table.name": "Nombre",
"account.shares.table.description": "Descripción", "account.shares.table.description": "Descripción",
"account.shares.table.visitors": "Visitas", "account.shares.table.visitors": "Visitas",
"account.shares.table.expiresAt": "Expires on", "account.shares.table.expiresAt": "Vence el",
"account.shares.table.createdAt": "Created on", "account.shares.table.createdAt": "Creado el",
"account.shares.table.size": "Tamaño", "account.shares.table.size": "Tamaño",
"account.shares.modal.share-informations": "Información del compartido", "account.shares.modal.share-informations": "Información del compartido",
"account.shares.modal.share-link": "Enlace", "account.shares.modal.share-link": "Enlace",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "Eliminar enlace compartido: {share}",
"account.shares.modal.delete.description": "¿Seguro que quieres eliminar este compartido?", "account.shares.modal.delete.description": "¿Seguro que quieres eliminar este compartido?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
@@ -150,12 +150,12 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "Año", "account.reverseShares.modal.expiration.year-singular": "Año",
"account.reverseShares.modal.expiration.year-plural": "Años", "account.reverseShares.modal.expiration.year-plural": "Años",
"account.reverseShares.modal.max-size.label": "Tamaño máximo del compartido", "account.reverseShares.modal.max-size.label": "Tamaño máximo del compartido",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "Enviar notificaciones por correo electrónico",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.send-email.description": "Te envía una notificación por correo electrónico cuando se crea un enlace compartido con este enlace de compartición inverso.",
"account.reverseShares.modal.simplified": "Modo simple", "account.reverseShares.modal.simplified": "Modo simple",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "Facilita que la persona que sube el archivo lo comparta contigo. Solo podrá personalizar el nombre y la descripción del enlace compartido.",
"account.reverseShares.modal.public-access": "Acceso público", "account.reverseShares.modal.public-access": "Acceso público",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "Haz que los enlaces compartidos creados con este enlace de compartición inverso sean públicos. Si está desactivado, solo tú y el creador del enlace tendrán acceso para verlo.",
"account.reverseShares.modal.max-use.label": "Máximo de usos", "account.reverseShares.modal.max-use.label": "Máximo de usos",
"account.reverseShares.modal.max-use.description": "Cantidad máxima de veces que esta URL se puede usar para crear un compartido.", "account.reverseShares.modal.max-use.description": "Cantidad máxima de veces que esta URL se puede usar para crear un compartido.",
"account.reverseShare.never-expires": "Esta compartición inversa nunca expirará.", "account.reverseShare.never-expires": "Esta compartición inversa nunca expirará.",
@@ -183,14 +183,14 @@ export default {
"admin.users.table.username": "Nombre de usuario", "admin.users.table.username": "Nombre de usuario",
"admin.users.table.email": "Correo", "admin.users.table.email": "Correo",
"admin.users.table.admin": "Administrador", "admin.users.table.admin": "Administrador",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "Editar usuario: {username}",
"admin.users.edit.update.admin-privileges": "Privilegios de administrador", "admin.users.edit.update.admin-privileges": "Privilegios de administrador",
"admin.users.edit.update.change-password.title": "Cambiar contraseña", "admin.users.edit.update.change-password.title": "Cambiar contraseña",
"admin.users.edit.update.change-password.field": "Nueva contraseña", "admin.users.edit.update.change-password.field": "Nueva contraseña",
"admin.users.edit.update.change-password.button": "Guardar nueva contraseña", "admin.users.edit.update.change-password.button": "Guardar nueva contraseña",
"admin.users.edit.update.notify.password.success": "Contraseña cambiada correctamente", "admin.users.edit.update.notify.password.success": "Contraseña cambiada correctamente",
"admin.users.edit.delete.title": "Delete user: {username} ?", "admin.users.edit.delete.title": "Eliminar usuario: {username} ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "¿Realmente deseas eliminar a este usuario y todos sus enlaces compartidos?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Crear usuario", "admin.users.modal.create.title": "Crear usuario",
"admin.users.modal.create.username": "Nombre de usuario", "admin.users.modal.create.username": "Nombre de usuario",
@@ -206,17 +206,20 @@ export default {
"admin.shares.table.id": "ID de compartición", "admin.shares.table.id": "ID de compartición",
"admin.shares.table.username": "Creador", "admin.shares.table.username": "Creador",
"admin.shares.table.visitors": "Visitantes", "admin.shares.table.visitors": "Visitantes",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "Vence el",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "Eliminar enlace compartido: {id}",
"admin.shares.edit.delete.description": "¿Seguro que quieres eliminar este compartido?", "admin.shares.edit.delete.description": "¿Seguro que quieres eliminar este compartido?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Subir", "upload.title": "Subir",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Ha ocurrido un error mientras se compartía tu archivo.", "upload.notify.generic-error": "Ha ocurrido un error mientras se compartía tu archivo.",
"upload.notify.count-failed": "No se pudo cargar {count} archivos. Intentando nuevamente.", "upload.notify.count-failed": "No se pudo cargar {count} archivos. Intentando nuevamente.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Subir archivos", "upload.dropzone.title": "Subir archivos",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Arrastra y suelta los archivos aquí para crear tu enlace compartido. Solo aceptamos archivos de hasta {maxSize} en total.",
"upload.dropzone.notify.file-too-big": "Tus archivos exceden el tamaño máximo de {maxSize}.", "upload.dropzone.notify.file-too-big": "Tus archivos exceden el tamaño máximo de {maxSize}.",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "Nombre", "upload.filelist.name": "Nombre",
@@ -228,8 +231,8 @@ export default {
"upload.modal.not-signed-in": "No has iniciado sesión", "upload.modal.not-signed-in": "No has iniciado sesión",
"upload.modal.not-signed-in-description": "No podrás eliminar tus compartidos manualmente ni ver el número de visitas.", "upload.modal.not-signed-in-description": "No podrás eliminar tus compartidos manualmente ni ver el número de visitas.",
"upload.modal.expires.never": "nunca", "upload.modal.expires.never": "nunca",
"upload.modal.expires.never-long": "Permanent share", "upload.modal.expires.never-long": "Enlace compartido permanente",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.", "upload.modal.expires.error.too-long": "La fecha de expiración excede el máximo de {max}.",
"upload.modal.link.label": "Enlace", "upload.modal.link.label": "Enlace",
"upload.modal.expires.label": "Expiración", "upload.modal.expires.label": "Expiración",
"upload.modal.expires.minute-singular": "Minuto", "upload.modal.expires.minute-singular": "Minuto",
@@ -272,16 +275,16 @@ export default {
"share.error.access-denied.title": "Compartición privada", "share.error.access-denied.title": "Compartición privada",
"share.error.access-denied.description": "La cuenta actual no tiene permiso para acceder a este compartido", "share.error.access-denied.description": "La cuenta actual no tiene permiso para acceder a este compartido",
"share.modal.password.title": "Se requiere contraseña", "share.modal.password.title": "Se requiere contraseña",
"share.modal.password.description": "Please enter the password to acces this share.", "share.modal.password.description": "Por favor, ingresa la contraseña para acceder a este enlace compartido.",
"share.modal.password": "Contraseña", "share.modal.password": "Contraseña",
"share.modal.error.invalid-password": "Contraseña inválida", "share.modal.error.invalid-password": "Contraseña inválida",
"share.button.download-all": "Descargar todo", "share.button.download-all": "Descargar todo",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.", "share.notify.download-all-preparing": "El enlace compartido está en preparación. Por favor, inténtalo de nuevo en unos minutos.",
"share.modal.file-link": "Enlace del archivo", "share.modal.file-link": "Enlace del archivo",
"share.table.name": "Nombre", "share.table.name": "Nombre",
"share.table.size": "Tamaño", "share.table.size": "Tamaño",
"share.modal.file-preview.error.not-supported.title": "Vista previa no disponible", "share.modal.file-preview.error.not-supported.title": "Vista previa no disponible",
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.", "share.modal.file-preview.error.not-supported.description": "Las vistas previas no son compatibles con este tipo de archivos. Por favor, descargue el archivo para verlo.",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "Editar {shareId}", "share.edit.title": "Editar {shareId}",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Nombre de la aplicación", "admin.config.general.app-name.description": "Nombre de la aplicación",
"admin.config.general.app-url": "App URL", "admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "En cuál URL está disponible Pingvin Share", "admin.config.general.app-url.description": "En cuál URL está disponible Pingvin Share",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Mostrar página de inicio", "admin.config.general.show-home-page": "Mostrar página de inicio",
"admin.config.general.show-home-page.description": "Mostrar o no la página de inicio", "admin.config.general.show-home-page.description": "Mostrar o no la página de inicio",
"admin.config.general.session-duration": "Duración de la sesión", "admin.config.general.session-duration": "Duración de la sesión",
@@ -307,24 +312,24 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Cambia tu logo subiendo una nueva imagen. La imagen debe ser un PNG y debe estar en formato 1:1.", "admin.config.general.logo.description": "Cambia tu logo subiendo una nueva imagen. La imagen debe ser un PNG y debe estar en formato 1:1.",
"admin.config.general.logo.placeholder": "Elegir imagen", "admin.config.general.logo.placeholder": "Elegir imagen",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Habilitar compartir por correo electrónico",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Si desea permitir compartir por correo electrónico. Solo habilita esto si SMTP está activado.",
"admin.config.email.share-recipients-subject": "Asunto destinatario", "admin.config.email.share-recipients-subject": "Asunto destinatario",
"admin.config.email.share-recipients-subject.description": "Asunto del correo el cual es enviado al destinatario del compartido.", "admin.config.email.share-recipients-subject.description": "Asunto del correo el cual es enviado al destinatario del compartido.",
"admin.config.email.share-recipients-message": "Mensaje destinatario", "admin.config.email.share-recipients-message": "Mensaje destinatario",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.", "admin.config.email.share-recipients-message.description": "Mensaje que se envía a los destinatarios del enlace compartido. \nVariables disponibles:\n{creator} - El nombre de usuario del creador del enlace\n{shareUrl} - La URL del enlace compartido\n{desc} - La descripción del enlace compartido\n{expires} - La fecha de expiración del enlace\nEstas variables se reemplazarán con el valor real.",
"admin.config.email.reverse-share-subject": "Asunto de la compartición inversa", "admin.config.email.reverse-share-subject": "Asunto de la compartición inversa",
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.", "admin.config.email.reverse-share-subject.description": "Asunto del correo electrónico enviado cuando alguien crea un enlace compartido con tu enlace compartido inverso.",
"admin.config.email.reverse-share-message": "Mensaje de la compartición inversa", "admin.config.email.reverse-share-message": "Mensaje de la compartición inversa",
"admin.config.email.reverse-share-message.description": "Mensaje que se envía cuando alguien comparte algo con tu enlace de compartición inversa. {shareUrl} Se remplazará con el nombre del creador y la URL del compartido.", "admin.config.email.reverse-share-message.description": "Mensaje que se envía cuando alguien comparte algo con tu enlace de compartición inversa. {shareUrl} Se remplazará con el nombre del creador y la URL del compartido.",
"admin.config.email.reset-password-subject": "Asunto restablecer contraseña", "admin.config.email.reset-password-subject": "Asunto restablecer contraseña",
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.", "admin.config.email.reset-password-subject.description": "Asunto del correo electrónico enviado cuando un usuario solicita un restablecimiento de contraseña.",
"admin.config.email.reset-password-message": "Mensaje restablecer contraseña", "admin.config.email.reset-password-message": "Mensaje restablecer contraseña",
"admin.config.email.reset-password-message.description": "Mensaje que se envía cuando un usuario solicita restablecer la contraseña. {url} se remplazará con la URL para restablecer la contraseña.", "admin.config.email.reset-password-message.description": "Mensaje que se envía cuando un usuario solicita restablecer la contraseña. {url} se remplazará con la URL para restablecer la contraseña.",
"admin.config.email.invite-subject": "Asunto de la invitación", "admin.config.email.invite-subject": "Asunto de la invitación",
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.", "admin.config.email.invite-subject.description": "Asunto del correo electrónico enviado cuando un administrador invita a un usuario.",
"admin.config.email.invite-message": "Mensaje de invitación", "admin.config.email.invite-message": "Mensaje de invitación",
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.", "admin.config.email.invite-message.description": "Mensaje que se envía cuando un administrador invita a un usuario. {url} se reemplazará con la URL de invitación, {email} con el correo electrónico y {password} con la contraseña del usuario.",
"admin.config.share.allow-registration": "Permitir registro", "admin.config.share.allow-registration": "Permitir registro",
"admin.config.share.allow-registration.description": "Si se permite el registro", "admin.config.share.allow-registration.description": "Si se permite el registro",
"admin.config.share.allow-unauthenticated-shares": "Permitir compartir sin iniciar sesión", "admin.config.share.allow-unauthenticated-shares": "Permitir compartir sin iniciar sesión",
@@ -336,17 +341,17 @@ export default {
"admin.config.share.zip-compression-level": "Nivel de compresión del Zip", "admin.config.share.zip-compression-level": "Nivel de compresión del Zip",
"admin.config.share.zip-compression-level.description": "Ajustar el nivel para equilibrar entre el tamaño del archivo y la velocidad de compresión. Los valores válidos van del 0 al 9, siendo 0 sin compresión y 9 el nivel máximo de compresión. ", "admin.config.share.zip-compression-level.description": "Ajustar el nivel para equilibrar entre el tamaño del archivo y la velocidad de compresión. Los valores válidos van del 0 al 9, siendo 0 sin compresión y 9 el nivel máximo de compresión. ",
"admin.config.share.chunk-size": "Tamaño de los fragmentos", "admin.config.share.chunk-size": "Tamaño de los fragmentos",
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.", "admin.config.share.chunk-size.description": "Ajusta el tamaño del fragmento (en bytes) para tus subidas y equilibra la eficiencia y la fiabilidad según tu conexión a Internet. Fragmentos más pequeños pueden aumentar las tasas de éxito para conexiones inestables, mientras que fragmentos más grandes hacen que las subidas sean más rápidas para conexiones estables.",
"admin.config.share.auto-open-share-modal": "Auto abrir un modal de creación de compartidos", "admin.config.share.auto-open-share-modal": "Auto abrir un modal de creación de compartidos",
"admin.config.share.auto-open-share-modal.description": "El modal de creación de compartir aparece automáticamente cuando un usuario selecciona archivos, eliminando la necesidad de hacer clic manualmente en el botón.", "admin.config.share.auto-open-share-modal.description": "El modal de creación de compartir aparece automáticamente cuando un usuario selecciona archivos, eliminando la necesidad de hacer clic manualmente en el botón.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "Habilitar",
"admin.config.smtp.enabled.description": "Si SMTP está habilitado. Active solo si ha introducido el host, el puerto, el correo, el usuario y la contraseña de su servidor SMTP.", "admin.config.smtp.enabled.description": "Si SMTP está habilitado. Active solo si ha introducido el host, el puerto, el correo, el usuario y la contraseña de su servidor SMTP.",
"admin.config.smtp.host": "Host", "admin.config.smtp.host": "Host",
"admin.config.smtp.host.description": "Host del servidor SMTP", "admin.config.smtp.host.description": "Host del servidor SMTP",
"admin.config.smtp.port": "Puerto", "admin.config.smtp.port": "Puerto",
"admin.config.smtp.port.description": "Puerto del servidor SMTP", "admin.config.smtp.port.description": "Puerto del servidor SMTP",
"admin.config.smtp.email": "Correo", "admin.config.smtp.email": "Correo",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Dirección desde la cual se envían los correos electrónicos",
"admin.config.smtp.username": "Usuario", "admin.config.smtp.username": "Usuario",
"admin.config.smtp.username.description": "Usuario del servidor SMTP", "admin.config.smtp.username.description": "Usuario del servidor SMTP",
"admin.config.smtp.password": "Contraseña", "admin.config.smtp.password": "Contraseña",
@@ -375,58 +380,58 @@ export default {
"admin.config.oauth.microsoft-enabled": "Microsoft", "admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Si el inicio de sesión de Microsoft está habilitado", "admin.config.oauth.microsoft-enabled.description": "Si el inicio de sesión de Microsoft está habilitado",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant", "admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.", "admin.config.oauth.microsoft-tenant.description": "Tenant ID de la aplicación OAuth de Microsoft\ncomún: Los usuarios con una cuenta personal de Microsoft y una cuenta de trabajo o escuela de Microsoft Entra ID pueden iniciar sesión en la aplicación.\norganizaciones: Solo los usuarios con cuentas de trabajo o escuela de Microsoft Entra ID pueden iniciar sesión en la aplicación.\nconsumidores: Solo los usuarios con una cuenta personal de Microsoft pueden iniciar sesión en la aplicación.\nNombre de dominio del Tenant ID de Microsoft Entra o el Tenant ID en formato GUID: Solo los usuarios de un Tenant específico de Microsoft Entra (miembros del directorio con una cuenta de trabajo o escuela o invitados del directorio con una cuenta personal de Microsoft) pueden iniciar sesión en la aplicación.",
"admin.config.oauth.microsoft-client-id": "ID del cliente de Microsoft", "admin.config.oauth.microsoft-client-id": "ID del cliente de Microsoft",
"admin.config.oauth.microsoft-client-id.description": "ID de cliente de la app OAuth de Microsoft", "admin.config.oauth.microsoft-client-id.description": "ID de cliente de la app OAuth de Microsoft",
"admin.config.oauth.microsoft-client-secret": "Secreto del cliente de Microsoft", "admin.config.oauth.microsoft-client-secret": "Secreto del cliente de Microsoft",
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app", "admin.config.oauth.microsoft-client-secret.description": "Secreto del cliente de la aplicación OAuth de Microsoft",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Si el inicio de sesión de Discord está habilitado", "admin.config.oauth.discord-enabled.description": "Si el inicio de sesión de Discord está habilitado",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Usuarios limitados de Discord",
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.", "admin.config.oauth.discord-limited-users.description": "Limitar el inicio de sesión a usuarios específicos por su ID de Discord. Deja en blanco para desactivar.",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID", "admin.config.oauth.discord-limited-guild": "ID de servidor limitado de Discord",
"admin.config.oauth.discord-limited-guild.description": "Limitar el inicio de sesión a usuarios en un servidor específico. Déjelo en blanco para desactivarlo.", "admin.config.oauth.discord-limited-guild.description": "Limitar el inicio de sesión a usuarios en un servidor específico. Déjelo en blanco para desactivarlo.",
"admin.config.oauth.discord-client-id": "Discord Client ID", "admin.config.oauth.discord-client-id": "ID de cliente de Discord",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app", "admin.config.oauth.discord-client-id.description": "ID de cliente de la aplicación OAuth de Discord",
"admin.config.oauth.discord-client-secret": "Discord Client secret", "admin.config.oauth.discord-client-secret": "Secreto de cliente de Discord",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app", "admin.config.oauth.discord-client-secret.description": "Secreto del cliente de la aplicación OAuth de Discord",
"admin.config.oauth.oidc-enabled": "Conexión OpenID", "admin.config.oauth.oidc-enabled": "Conexión OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled", "admin.config.oauth.oidc-enabled.description": "Si el inicio de sesión de OpenID Connect está habilitado",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI", "admin.config.oauth.oidc-discovery-uri": "URI de descubrimiento de OpenID Connect",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app", "admin.config.oauth.oidc-discovery-uri.description": "URI de descubrimiento de la aplicación OAuth de OpenID Connect",
"admin.config.oauth.oidc-sign-out": "Sign out from OpenID Connect", "admin.config.oauth.oidc-sign-out": "Cerrar sesión de OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Whether the “Sign out” button will sign out from the OpenID Connect provider", "admin.config.oauth.oidc-sign-out.description": "Si el botón \"Cerrar sesión\" cerrará la sesión del proveedor de OpenID Connect",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim", "admin.config.oauth.oidc-username-claim": "Reclamo de nombre de usuario de OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.", "admin.config.oauth.oidc-username-claim.description": "Reclamo de nombre de usuario en el token de OpenID Connect. Déjalo en blanco si no sabes qué es esta configuración.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token", "admin.config.oauth.oidc-role-path": "Ruta a los roles en el token de OpenID Connect",
"admin.config.oauth.oidc-role-path.description": "Debe ser una ruta JMES válida que haga referencia a un array de roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Déjalo en blanco si no sabe lo que es esta configuración.", "admin.config.oauth.oidc-role-path.description": "Debe ser una ruta JMES válida que haga referencia a un array de roles. " + "Se recomienda gestionar los derechos de acceso utilizando roles de OpenID Connect solo si no se ha configurado ningún otro proveedor de identidad y si el inicio de sesión con contraseña está deshabilitado. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access", "admin.config.oauth.oidc-role-general-access": "Rol de OpenID Connect para acceso general",
"admin.config.oauth.oidc-role-general-access.description": "Rol requerido para acceso general. Debe estar presente en los roles de un usuario para que inicie sesión. " + "Déjalo en blanco si no sabe lo que es esta configuración.", "admin.config.oauth.oidc-role-general-access.description": "Rol requerido para acceso general. Debe estar presente en los roles de un usuario para que inicie sesión. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access", "admin.config.oauth.oidc-role-admin-access": "Rol de OpenID Connect para acceso de administrador",
"admin.config.oauth.oidc-role-admin-access.description": "Rol requerido para el acceso administrativo. Debe estar presente en los roles de un usuario para acceder al panel de administración. " + "Déjalo en blanco si no sabe lo que es esta configuración.", "admin.config.oauth.oidc-role-admin-access.description": "Rol requerido para el acceso administrativo. Debe estar presente en los roles de un usuario para acceder al panel de administración. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID", "admin.config.oauth.oidc-client-id": "ID de Cliente OpenID Connect",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app", "admin.config.oauth.oidc-client-id.description": "ID de cliente de la aplicación OAuth de OpenID Connect",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret", "admin.config.oauth.oidc-client-secret": "Secreto de cliente de OpenID Connect",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app", "admin.config.oauth.oidc-client-secret.description": "Secreto del cliente de la aplicación OAuth de OpenID Connect",
"admin.config.category.ldap": "LDAP", "admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP", "admin.config.ldap.enabled": "Habilitar LDAP",
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login", "admin.config.ldap.enabled.description": "Usar autenticación LDAP para el inicio de sesión de usuarios",
"admin.config.ldap.url": "Server URL", "admin.config.ldap.url": "URL del servidor",
"admin.config.ldap.url.description": "URL of the LDAP server", "admin.config.ldap.url.description": "URL del servidor LDAP",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Bind DN",
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search", "admin.config.ldap.bind-dn.description": "Usuario predeterminado utilizado para realizar la búsqueda de usuarios",
"admin.config.ldap.bind-password": "Bind password", "admin.config.ldap.bind-password": "Bind password",
"admin.config.ldap.bind-password.description": "Password used to perform the user search", "admin.config.ldap.bind-password.description": "Contraseña utilizada para realizar la búsqueda de usuarios",
"admin.config.ldap.search-base": "User base", "admin.config.ldap.search-base": "Base de usuarios",
"admin.config.ldap.search-base.description": "Base location, where the user search will be performed", "admin.config.ldap.search-base.description": "Ubicación base, donde se llevará a cabo la búsqueda de usuarios",
"admin.config.ldap.search-query": "User query", "admin.config.ldap.search-query": "Consulta de usuario",
"admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.", "admin.config.ldap.search-query.description": "La consulta de usuario se utilizará para buscar en la 'Base de usuarios' al usuario LDAP. Se puede usar %username% como marcador de posición para la entrada del usuario.",
"admin.config.ldap.admin-groups": "Admin group", "admin.config.ldap.admin-groups": "Grupo de administración",
"admin.config.ldap.admin-groups.description": "Group required for administrative access.", "admin.config.ldap.admin-groups.description": "Grupo requerido para acceso administrativo.",
"admin.config.ldap.field-name-member-of": "User groups attribute name", "admin.config.ldap.field-name-member-of": "Atributo grupos de usuarios",
"admin.config.ldap.field-name-member-of.description": "LDAP attribute name for the groups, an user is a member of. This is used when checking for the admin group.", "admin.config.ldap.field-name-member-of.description": "Nombre del atributo LDAP para los grupos de los que es miembro un usuario. Esto se utiliza al verificar el grupo de administración.",
"admin.config.ldap.field-name-email": "User email attribute name", "admin.config.ldap.field-name-email": "Atributo correo electrónico del usuario",
"admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.", "admin.config.ldap.field-name-email.description": "Nombre del atributo LDAP para el correo electrónico de un usuario.",
// 404 // 404
"404.description": "Oops esta página no existe.", "404.description": "Oops esta página no existe.",
"404.button.home": "Regrésame al inicio", "404.button.home": "Regrésame al inicio",
@@ -441,10 +446,10 @@ export default {
"error.msg.no_user": "El usuario vinculado a esta cuenta {0} no existe.", "error.msg.no_user": "El usuario vinculado a esta cuenta {0} no existe.",
"error.msg.no_email": "No se puede obtener la dirección de correo electrónico de esta cuenta {0}.", "error.msg.no_email": "No se puede obtener la dirección de correo electrónico de esta cuenta {0}.",
"error.msg.already_linked": "Esta cuenta {0} ya está vinculada a otra cuenta.", "error.msg.already_linked": "Esta cuenta {0} ya está vinculada a otra cuenta.",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.", "error.msg.not_linked": "Esta cuenta {0} aún no ha sido vinculada a ninguna cuenta.",
"error.msg.unverified_account": "Esta cuenta {0} no está verificada, por favor inténtalo de nuevo después de la verificación.", "error.msg.unverified_account": "Esta cuenta {0} no está verificada, por favor inténtalo de nuevo después de la verificación.",
"error.msg.user_not_allowed": "No tienes permitido iniciar sesion.", "error.msg.user_not_allowed": "No tienes permitido iniciar sesion.",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.", "error.msg.cannot_get_user_info": "No se puede obtener tu información de usuario de esta cuenta {0}.",
"error.param.provider_github": "GitHub", "error.param.provider_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
@@ -462,9 +467,9 @@ export default {
"common.button.generate": "Generar", "common.button.generate": "Generar",
"common.button.done": "Listo", "common.button.done": "Listo",
"common.text.link": "Enlace", "common.text.link": "Enlace",
"common.text.navigate-to-link": "Visit link", "common.text.navigate-to-link": "Visitar enlace",
"common.text.or": "o", "common.text.or": "o",
"common.text.redirecting": "Redirecting...", "common.text.redirecting": "Redirigiendo...",
"common.button.go-back": "Volver", "common.button.go-back": "Volver",
"common.button.go-home": "Página de inicio", "common.button.go-home": "Página de inicio",
"common.notify.copied": "Tu enlace se ha copiado al portapapeles", "common.notify.copied": "Tu enlace se ha copiado al portapapeles",
@@ -474,8 +479,8 @@ export default {
"common.error.invalid-email": "Correo electrónico no válido", "common.error.invalid-email": "Correo electrónico no válido",
"common.error.too-short": "Debe tener al menos {length} caracteres", "common.error.too-short": "Debe tener al menos {length} caracteres",
"common.error.too-long": "Debe tener como máximo {length} caracteres", "common.error.too-long": "Debe tener como máximo {length} caracteres",
"common.error.number-too-small": "Must be at least {min}", "common.error.number-too-small": "Debe ser al menos {min}",
"common.error.number-too-large": "Must be at most {max}", "common.error.number-too-large": "Debe ser como máximo {max}",
"common.error.exact-length": "Debe tener exactamente {length} caracteres", "common.error.exact-length": "Debe tener exactamente {length} caracteres",
"common.error.invalid-number": "Debe ser un número", "common.error.invalid-number": "Debe ser un número",
"common.error.field-required": "Este campo es requerido" "common.error.field-required": "Este campo es requerido"

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Pilvetä", "upload.title": "Pilvetä",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Kohdattiin odottamaton virhe jaon luomisessa.", "upload.notify.generic-error": "Kohdattiin odottamaton virhe jaon luomisessa.",
"upload.notify.count-failed": "{count} tiedostoa ei voitu ladata. Yritetään uudelleen.", "upload.notify.count-failed": "{count} tiedostoa ei voitu ladata. Yritetään uudelleen.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Pilvetä tiedostoja", "upload.dropzone.title": "Pilvetä tiedostoja",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Sovelluksen nimi", "admin.config.general.app-name.description": "Sovelluksen nimi",
"admin.config.general.app-url": "Sovelluksen URL", "admin.config.general.app-url": "Sovelluksen URL",
"admin.config.general.app-url.description": "Millä URL-osoitteella Pingvin Share on saatavilla", "admin.config.general.app-url.description": "Millä URL-osoitteella Pingvin Share on saatavilla",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Näytä kotisivu", "admin.config.general.show-home-page": "Näytä kotisivu",
"admin.config.general.show-home-page.description": "Näytetäänkö kotisivu vai ei", "admin.config.general.show-home-page.description": "Näytetäänkö kotisivu vai ei",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",

View File

@@ -91,14 +91,14 @@ export default {
"account.card.security.totp.enable.description": "Entrez votre mot de passe actuel pour activer TOTP", "account.card.security.totp.enable.description": "Entrez votre mot de passe actuel pour activer TOTP",
"account.card.security.totp.disable.description": "Entrez votre mot de passe actuel pour désactiver TOTP", "account.card.security.totp.disable.description": "Entrez votre mot de passe actuel pour désactiver TOTP",
"account.card.security.totp.button.start": "Démarrer", "account.card.security.totp.button.start": "Démarrer",
"account.modal.totp.title": "Activer TOTP", "account.modal.totp.title": "Activer la double authentification",
"account.modal.totp.step1": "Étape 1 : Ajouter votre authentificateur", "account.modal.totp.step1": "Étape 1 : Ajouter votre authentification",
"account.modal.totp.step2": "Étape 2 : Valider votre code", "account.modal.totp.step2": "Étape 2 : Valider votre code",
"account.modal.totp.enterManually": "Saisir manuellement", "account.modal.totp.enterManually": "Saisir manuellement",
"account.modal.totp.code": "Code", "account.modal.totp.code": "Code",
"common.button.clickToCopy": "Cliquez pour copier", "common.button.clickToCopy": "Cliquez pour copier",
"account.modal.totp.verify": "Vérifier", "account.modal.totp.verify": "Vérifier",
"account.notify.totp.disable": "TOTP désactivé avec succès", "account.notify.totp.disable": "Double authentification (TOTP) désactivé avec succès",
"account.notify.totp.enable": "TOTP activé avec succès", "account.notify.totp.enable": "TOTP activé avec succès",
"account.card.language.title": "Langue", "account.card.language.title": "Langue",
"account.card.language.description": "Le projet est traduit par la communauté. Certaines traductions peuvent être incomplètes.", "account.card.language.description": "Le projet est traduit par la communauté. Certaines traductions peuvent être incomplètes.",
@@ -151,7 +151,7 @@ export default {
"account.reverseShares.modal.expiration.year-plural": "Ans", "account.reverseShares.modal.expiration.year-plural": "Ans",
"account.reverseShares.modal.max-size.label": "Taille maximale du partage", "account.reverseShares.modal.max-size.label": "Taille maximale du partage",
"account.reverseShares.modal.send-email": "Envoyer des notifications par courriel", "account.reverseShares.modal.send-email": "Envoyer des notifications par courriel",
"account.reverseShares.modal.send-email.description": "Vous envoie une notification par courriel lorsqu'un partage est créé avec ce lien de partage inversé.", "account.reverseShares.modal.send-email.description": "Vous envoi une notification par courriel lorsqu'un partage est créé avec ce lien de partage inversé.",
"account.reverseShares.modal.simplified": "Mode simple", "account.reverseShares.modal.simplified": "Mode simple",
"account.reverseShares.modal.simplified.description": "Simplifiez la tâche à la personne qui vous partage un fichier. Ils ne pourront que personnaliser le nom et la description du partage.", "account.reverseShares.modal.simplified.description": "Simplifiez la tâche à la personne qui vous partage un fichier. Ils ne pourront que personnaliser le nom et la description du partage.",
"account.reverseShares.modal.public-access": "Accès public", "account.reverseShares.modal.public-access": "Accès public",
@@ -190,7 +190,7 @@ export default {
"admin.users.edit.update.change-password.button": "Enregistrer le nouveau mot de passe", "admin.users.edit.update.change-password.button": "Enregistrer le nouveau mot de passe",
"admin.users.edit.update.notify.password.success": "Le mot de passe a été modifié", "admin.users.edit.update.notify.password.success": "Le mot de passe a été modifié",
"admin.users.edit.delete.title": "Supprimer l'utilisateur : {username} ?", "admin.users.edit.delete.title": "Supprimer l'utilisateur : {username} ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "Souhaitez-vous vraiment supprimer cet utilisateur et tous ses partages ?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Créer un utilisateur", "admin.users.modal.create.title": "Créer un utilisateur",
"admin.users.modal.create.username": "Surnom", "admin.users.modal.create.username": "Surnom",
@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Envoyer", "upload.title": "Envoyer",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Une erreur est survenue durant le traitement de votre partage.", "upload.notify.generic-error": "Une erreur est survenue durant le traitement de votre partage.",
"upload.notify.count-failed": "{count} fichier(s) na(ont) pas pu être envoyé(s). Veuillez réessayer.", "upload.notify.count-failed": "{count} fichier(s) na(ont) pas pu être envoyé(s). Veuillez réessayer.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Téléverser des fichiers", "upload.dropzone.title": "Téléverser des fichiers",
"upload.dropzone.description": "Glisser-déposer les fichiers ici pour commencer votre partage. Nous n'acceptons que les fichiers jusqu'à {maxSize} au total.", "upload.dropzone.description": "Glisser-déposer les fichiers ici pour commencer votre partage. Nous n'acceptons que les fichiers jusqu'à {maxSize} au total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Le nom de lapplication", "admin.config.general.app-name.description": "Le nom de lapplication",
"admin.config.general.app-url": "URL de lappli", "admin.config.general.app-url": "URL de lappli",
"admin.config.general.app-url.description": "Depuis quel URL le partage Pingvin est disponible", "admin.config.general.app-url.description": "Depuis quel URL le partage Pingvin est disponible",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Afficher la page daccueil", "admin.config.general.show-home-page": "Afficher la page daccueil",
"admin.config.general.show-home-page.description": "Afficher ou non la page daccueil", "admin.config.general.show-home-page.description": "Afficher ou non la page daccueil",
"admin.config.general.session-duration": "Durée de la session", "admin.config.general.session-duration": "Durée de la session",
@@ -312,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Sujet dun partage", "admin.config.email.share-recipients-subject": "Sujet dun partage",
"admin.config.email.share-recipients-subject.description": "Intitulé du courriel envoyé aux destinataires dun partage.", "admin.config.email.share-recipients-subject.description": "Intitulé du courriel envoyé aux destinataires dun partage.",
"admin.config.email.share-recipients-message": "Message dun partage", "admin.config.email.share-recipients-message": "Message dun partage",
"admin.config.email.share-recipients-message.description": "Contenu du courriel qui est envoyé aux destinataires du partage. Variables possibles :\n• {creator} : Le pseudo de lauteur du partage\n• {shareUrl} : LURL du partage\n• {desc} : La description du partage\n• {expires} : La date d'expiration du partage\nCes variables seront remplacées par leur valeur réelle.", "admin.config.email.share-recipients-message.description": "Contenu du courriel qui est envoyé aux destinataires du partage.\nVariables possibles :\n• {creator} : Le pseudo de lauteur du partage\n• {shareUrl} : LURL du partage\n• {desc} : La description du partage\n• {expires} : La date d'expiration du partage\nCes variables seront remplacées par leur valeur réelle.",
"admin.config.email.reverse-share-subject": "Sujet dun partage inversé", "admin.config.email.reverse-share-subject": "Sujet dun partage inversé",
"admin.config.email.reverse-share-subject.description": "Intitulé du courriel envoyé lorsque quelquun a partagé des fichiers depuis votre partage inversé.", "admin.config.email.reverse-share-subject.description": "Intitulé du courriel envoyé lorsque quelquun a partagé des fichiers depuis votre partage inversé.",
"admin.config.email.reverse-share-message": "Message dun partage inversé", "admin.config.email.reverse-share-message": "Message dun partage inversé",
@@ -356,8 +361,8 @@ export default {
"admin.config.smtp.allow-unauthorized-certificates.description": "Ne permettez ceci que si vous avez besoin de faire confiance aux certificats autosignés.", "admin.config.smtp.allow-unauthorized-certificates.description": "Ne permettez ceci que si vous avez besoin de faire confiance aux certificats autosignés.",
"admin.config.oauth.allow-registration": "Autoriser linscription", "admin.config.oauth.allow-registration": "Autoriser linscription",
"admin.config.oauth.allow-registration.description": "Permettre aux utilisateurs de sinscrire via leur identifiant social", "admin.config.oauth.allow-registration.description": "Permettre aux utilisateurs de sinscrire via leur identifiant social",
"admin.config.oauth.ignore-totp": "Ignorer TOTP", "admin.config.oauth.ignore-totp": "Ignorer double authentification TOTP",
"admin.config.oauth.ignore-totp.description": "Ignorer le TOTP lorsque lutilisateur utilise un identifiant social.", "admin.config.oauth.ignore-totp.description": "Ignorer la double-authentification (TOTP) lorsque lutilisateur utilise un identifiant social",
"admin.config.oauth.disable-password": "Désactiver la connexion par mot de passe", "admin.config.oauth.disable-password": "Désactiver la connexion par mot de passe",
"admin.config.oauth.disable-password.description": "Désactive la connexion par mot de passe\nAssurez-vous quun fournisseur OAuth soit correctement configuré avant dactiver cette configuration pour éviter d'être enfermé.", "admin.config.oauth.disable-password.description": "Désactive la connexion par mot de passe\nAssurez-vous quun fournisseur OAuth soit correctement configuré avant dactiver cette configuration pour éviter d'être enfermé.",
"admin.config.oauth.github-enabled": "GitHub", "admin.config.oauth.github-enabled": "GitHub",
@@ -383,7 +388,7 @@ export default {
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Permettre la connexion via Discord", "admin.config.oauth.discord-enabled.description": "Permettre la connexion via Discord",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Discord limited users",
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.", "admin.config.oauth.discord-limited-users.description": "Limiter la connexion à des utilisateurs spécifiques par leur identifiant Discord. Laissez vide pour désactiver.",
"admin.config.oauth.discord-limited-guild": "ID de serveur restreint Discord", "admin.config.oauth.discord-limited-guild": "ID de serveur restreint Discord",
"admin.config.oauth.discord-limited-guild.description": "Limiter la connexion aux utilisateurs sur un serveur spécifique. Laissez vide pour désactiver.", "admin.config.oauth.discord-limited-guild.description": "Limiter la connexion aux utilisateurs sur un serveur spécifique. Laissez vide pour désactiver.",
"admin.config.oauth.discord-client-id": "ID du client Discord", "admin.config.oauth.discord-client-id": "ID du client Discord",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Feltöltés", "navbar.upload": "Feltöltés",
"navbar.signin": "Bejelentkezés", "navbar.signin": "Bejelentkezés",
"navbar.home": "Home", "navbar.home": "Home",
"navbar.signup": "Sign up", "navbar.signup": "Regisztráció",
"navbar.links.shares": "Megosztásaim", "navbar.links.shares": "Megosztásaim",
"navbar.links.reverse": "Fordított megosztások", "navbar.links.reverse": "Fordított megosztások",
"navbar.avatar.account": "Fiókom", "navbar.avatar.account": "Fiókom",
@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "Saját üzemeltetés", "home.bullet.a.name": "Saját üzemeltetés",
"home.bullet.a.description": "A Pingvin Share megosztót saját gépéről futtathatja.", "home.bullet.a.description": "A Pingvin Share megosztót saját gépéről futtathatja.",
"home.bullet.b.name": "Adatvédelem", "home.bullet.b.name": "Adatvédelem",
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.", "home.bullet.b.description": "A te fájljaid a tiéd, és harmadik felek soha nem férnek hozzá.",
"home.bullet.c.name": "Nincs bosszantó fájl méretkorlát", "home.bullet.c.name": "Nincs bosszantó fájl méretkorlát",
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.", "home.bullet.c.description": "Akkora fájlokat oszt meg, amekkorákat csak akar. Határt csak a lemezterület szab.",
"home.button.start": "Nosza, kezdjük", "home.button.start": "Nosza, kezdjük",
"home.button.source": "Forráskód", "home.button.source": "Forráskód",
// END / // END /
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Elfelejtette jelszavát?", "resetPassword.title": "Elfelejtette jelszavát?",
"resetPassword.description": "Adja meg emailcímét a jelszó alaphelyzetbe állításához.", "resetPassword.description": "Adja meg emailcímét a jelszó alaphelyzetbe állításához.",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "A jelszó visszaállítására szolgáló linket tartalmazó üzenetet küldtünk, abban az esetben, ha az e-mail létezik.",
"resetPassword.button.back": "Vissza a bejelentkezési oldalra", "resetPassword.button.back": "Vissza a bejelentkezési oldalra",
"resetPassword.text.resetPassword": "Jelszó alaphelyzetbe állítása", "resetPassword.text.resetPassword": "Jelszó alaphelyzetbe állítása",
"resetPassword.text.enterNewPassword": "Adja meg új jelszavát", "resetPassword.text.enterNewPassword": "Adja meg új jelszavát",
"resetPassword.input.password": "Új jelszó", "resetPassword.input.password": "Új jelszó",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.", "resetPassword.notify.passwordReset": "A jelszavát sikeresen helyreállította.",
// /account // /account
"account.title": "Fiókom", "account.title": "Fiókom",
"account.card.info.title": "Fiókinformáció", "account.card.info.title": "Fiókinformáció",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "Jelszó", "account.card.password.title": "Jelszó",
"account.card.password.old": "Régi jelszó", "account.card.password.old": "Régi jelszó",
"account.card.password.new": "Új jelszó", "account.card.password.new": "Új jelszó",
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.", "account.card.password.noPasswordSet": "Még nincs jelszava. Ha email és jelszó kombinációval kíván bejelentkezni, létre kell hoznia egy jelszót.",
"account.notify.password.success": "A jelszó sikeresen frissítésre került", "account.notify.password.success": "A jelszó sikeresen frissítésre került",
"account.card.oauth.title": "Közösségi bejelentkezés", "account.card.oauth.title": "Közösségi bejelentkezés",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "Leválasztás", "account.card.oauth.unlink": "Leválasztás",
"account.card.oauth.unlinked": "Leválasztva", "account.card.oauth.unlinked": "Leválasztva",
"account.modal.unlink.title": "Fiók leválasztása", "account.modal.unlink.title": "Fiók leválasztása",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials", "account.modal.unlink.description": "A közösségi hálón keresztül csatolt fiók leválasztásával elveszítheti hozzáférését a fiókhoz, ha a név és jelszó kombinációra nem emlékszik",
"account.notify.oauth.unlinked.success": "Leválasztás sikeres", "account.notify.oauth.unlinked.success": "Leválasztás sikeres",
"account.card.security.title": "Biztonság", "account.card.security.title": "Biztonság",
"account.card.security.totp.enable.description": "Adja meg az aktuális jelszavát a TOTP engedélyezéséhez", "account.card.security.totp.enable.description": "Adja meg az aktuális jelszavát a TOTP engedélyezéséhez",
@@ -121,12 +121,12 @@ export default {
"account.shares.table.name": "Megnevezés", "account.shares.table.name": "Megnevezés",
"account.shares.table.description": "Leírás", "account.shares.table.description": "Leírás",
"account.shares.table.visitors": "Látogatók", "account.shares.table.visitors": "Látogatók",
"account.shares.table.expiresAt": "Expires on", "account.shares.table.expiresAt": "Lejár",
"account.shares.table.createdAt": "Created on", "account.shares.table.createdAt": "Létrehozva",
"account.shares.table.size": "Méret", "account.shares.table.size": "Méret",
"account.shares.modal.share-informations": "Megosztás adatai", "account.shares.modal.share-informations": "Megosztás adatai",
"account.shares.modal.share-link": "Hivatkozás", "account.shares.modal.share-link": "Hivatkozás",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "Megosztás törlése: {share}",
"account.shares.modal.delete.description": "Biztos abban, hogy törölni kívánja ezt a megosztást?", "account.shares.modal.delete.description": "Biztos abban, hogy törölni kívánja ezt a megosztást?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
@@ -150,12 +150,12 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "év", "account.reverseShares.modal.expiration.year-singular": "év",
"account.reverseShares.modal.expiration.year-plural": "év", "account.reverseShares.modal.expiration.year-plural": "év",
"account.reverseShares.modal.max-size.label": "Megosztás megengedett max mérete", "account.reverseShares.modal.max-size.label": "Megosztás megengedett max mérete",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "E-mail értesítések",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.send-email.description": "E-mailben értesít, amikor a fordított megosztási hivatkozást használva megosztást hoznak létre.",
"account.reverseShares.modal.simplified": "Egyszerű mód", "account.reverseShares.modal.simplified": "Egyszerű mód",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "A fájlt feltöltő személy számára egyszerűsíthető az Önnel történő megosztás. A megosztásnak csak a neve és a leírása módosítható.",
"account.reverseShares.modal.public-access": "Nyilvános megosztás", "account.reverseShares.modal.public-access": "Nyilvános megosztás",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "A fordított megosztással létrehozott megosztások nyilvánossá tétele. Kikapcsolása esetén csak a megosztás létrehozója és Ön láthatja a megosztást.",
"account.reverseShares.modal.max-use.label": "Megengedett alkalmak száma", "account.reverseShares.modal.max-use.label": "Megengedett alkalmak száma",
"account.reverseShares.modal.max-use.description": "A megosztási hivatkozás megengedett felhasználási alkalmainak száma.", "account.reverseShares.modal.max-use.description": "A megosztási hivatkozás megengedett felhasználási alkalmainak száma.",
"account.reverseShare.never-expires": "Ez a fordított megosztás soha nem fog lejárni.", "account.reverseShare.never-expires": "Ez a fordított megosztás soha nem fog lejárni.",
@@ -183,14 +183,14 @@ export default {
"admin.users.table.username": "Felhasználónév", "admin.users.table.username": "Felhasználónév",
"admin.users.table.email": "Email", "admin.users.table.email": "Email",
"admin.users.table.admin": "Admin ügyek", "admin.users.table.admin": "Admin ügyek",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "{username} felhasználó szerkesztése",
"admin.users.edit.update.admin-privileges": "Adminisztrátori jogosultságok", "admin.users.edit.update.admin-privileges": "Adminisztrátori jogosultságok",
"admin.users.edit.update.change-password.title": "Jelszó módosítása", "admin.users.edit.update.change-password.title": "Jelszó módosítása",
"admin.users.edit.update.change-password.field": "Új jelszó", "admin.users.edit.update.change-password.field": "Új jelszó",
"admin.users.edit.update.change-password.button": "Új jelszó mentése", "admin.users.edit.update.change-password.button": "Új jelszó mentése",
"admin.users.edit.update.notify.password.success": "A jelszó sikeresen frissítésre került", "admin.users.edit.update.notify.password.success": "A jelszó sikeresen frissítésre került",
"admin.users.edit.delete.title": "Delete user: {username} ?", "admin.users.edit.delete.title": "{username} felhasználó törlése ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "Biztosan törölni szeretné ezt a felhasználót és az összes megosztását?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Felhasználó létrehozása", "admin.users.modal.create.title": "Felhasználó létrehozása",
"admin.users.modal.create.username": "Felhasználónév", "admin.users.modal.create.username": "Felhasználónév",
@@ -206,17 +206,20 @@ export default {
"admin.shares.table.id": "Megosztás ID", "admin.shares.table.id": "Megosztás ID",
"admin.shares.table.username": "Létrehozó", "admin.shares.table.username": "Létrehozó",
"admin.shares.table.visitors": "Látogatók", "admin.shares.table.visitors": "Látogatók",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "Lejár",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "Megosztás törlése: {id}",
"admin.shares.edit.delete.description": "Valóban törölni kívánja ezt a megosztást?", "admin.shares.edit.delete.description": "Valóban törölni kívánja ezt a megosztást?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Feltöltés", "upload.title": "Feltöltés",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Hiba lépett fel a megosztás befejezése közben.", "upload.notify.generic-error": "Hiba lépett fel a megosztás befejezése közben.",
"upload.notify.count-failed": "{count} darab fájlt nem sikerült feltölteni. Próbálja ismét.", "upload.notify.count-failed": "{count} darab fájlt nem sikerült feltölteni. Próbálja ismét.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Fájlok feltöltése", "upload.dropzone.title": "Fájlok feltöltése",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Húzza ide a fájlokat a megosztás elkészítéséhez. Legfeljebb {maxSize} fájl húzható egy megosztásba.",
"upload.dropzone.notify.file-too-big": "A fájlok mérete meghaladja a megengedett {maxSize} méretet.", "upload.dropzone.notify.file-too-big": "A fájlok mérete meghaladja a megengedett {maxSize} méretet.",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "Megnevezés", "upload.filelist.name": "Megnevezés",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Az alkalmazás neve", "admin.config.general.app-name.description": "Az alkalmazás neve",
"admin.config.general.app-url": "Alkalmazás URL hivatkozás", "admin.config.general.app-url": "Alkalmazás URL hivatkozás",
"admin.config.general.app-url.description": "A Pingvin Share megosztáskezelőre mutató hivatkozás", "admin.config.general.app-url.description": "A Pingvin Share megosztáskezelőre mutató hivatkozás",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Kezdőlap mutatása", "admin.config.general.show-home-page": "Kezdőlap mutatása",
"admin.config.general.show-home-page.description": "A kezdőlap mutatásának ki- és bekapcsolása", "admin.config.general.show-home-page.description": "A kezdőlap mutatásának ki- és bekapcsolása",
"admin.config.general.session-duration": "Munkamenet időtartama", "admin.config.general.session-duration": "Munkamenet időtartama",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Carica", "upload.title": "Carica",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Si è verificato un errore durante il completamento della condivisione.", "upload.notify.generic-error": "Si è verificato un errore durante il completamento della condivisione.",
"upload.notify.count-failed": "Impossibile caricare {count} file. Riprovare.", "upload.notify.count-failed": "Impossibile caricare {count} file. Riprovare.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Carica File", "upload.dropzone.title": "Carica File",
"upload.dropzone.description": "Trascina qui i file per iniziare la tua condivisione. Possiamo accettare solo i file che sono inferiori a {maxSize} in totale.", "upload.dropzone.description": "Trascina qui i file per iniziare la tua condivisione. Possiamo accettare solo i file che sono inferiori a {maxSize} in totale.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Nome dell' applicazione", "admin.config.general.app-name.description": "Nome dell' applicazione",
"admin.config.general.app-url": "URL dell'App", "admin.config.general.app-url": "URL dell'App",
"admin.config.general.app-url.description": "Su quale URL Pingvin Share è pubblicato", "admin.config.general.app-url.description": "Su quale URL Pingvin Share è pubblicato",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Visualizza Home Page", "admin.config.general.show-home-page": "Visualizza Home Page",
"admin.config.general.show-home-page.description": "Indica se mostrare la home page", "admin.config.general.show-home-page.description": "Indica se mostrare la home page",
"admin.config.general.session-duration": "Durata della sessione", "admin.config.general.session-duration": "Durata della sessione",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "アップロード", "navbar.upload": "アップロード",
"navbar.signin": "サインイン", "navbar.signin": "サインイン",
"navbar.home": "ホーム", "navbar.home": "ホーム",
"navbar.signup": "Sign up", "navbar.signup": "新規登録",
"navbar.links.shares": "自分の共有", "navbar.links.shares": "自分の共有",
"navbar.links.reverse": "ファイルリクエスト", "navbar.links.reverse": "ファイルリクエスト",
"navbar.avatar.account": "マイアカウント", "navbar.avatar.account": "マイアカウント",
@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "セルフホスト", "home.bullet.a.name": "セルフホスト",
"home.bullet.a.description": "Pingvin Shareをあなたのマシンでホストしましょう。", "home.bullet.a.description": "Pingvin Shareをあなたのマシンでホストしましょう。",
"home.bullet.b.name": "プライバシー", "home.bullet.b.name": "プライバシー",
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.", "home.bullet.b.description": "あなたのファイルはあなたのものであり、第三者がアクセスすることは決してありません。",
"home.bullet.c.name": "ファイルサイズ制限に悩まされることはありません", "home.bullet.c.name": "ファイルサイズ制限に悩まされることはありません",
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.", "home.bullet.c.description": "必要なだけ大きなファイルをアップロードできます。制限があるのはハードドライブのみです。",
"home.button.start": "始めましょう", "home.button.start": "始めましょう",
"home.button.source": "ソースコード", "home.button.source": "ソースコード",
// END / // END /
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "パスワードを忘れてしまいましたか?", "resetPassword.title": "パスワードを忘れてしまいましたか?",
"resetPassword.description": "登録しているメールアドレスを入力してください。", "resetPassword.description": "登録しているメールアドレスを入力してください。",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "指定されたメールアドレスが存在する場合、パスワードをリセットするためのリンクを含むメッセージが送信されました。",
"resetPassword.button.back": "サインインページに戻る", "resetPassword.button.back": "サインインページに戻る",
"resetPassword.text.resetPassword": "パスワードをリセット", "resetPassword.text.resetPassword": "パスワードをリセット",
"resetPassword.text.enterNewPassword": "新規パスワードを入力", "resetPassword.text.enterNewPassword": "新規パスワードを入力",
"resetPassword.input.password": "新規パスワード", "resetPassword.input.password": "新規パスワード",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.", "resetPassword.notify.passwordReset": "パスワードが正常にリセットされました。",
// /account // /account
"account.title": "マイアカウント", "account.title": "マイアカウント",
"account.card.info.title": "アカウント情報", "account.card.info.title": "アカウント情報",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "パスワード", "account.card.password.title": "パスワード",
"account.card.password.old": "現在のパスワード", "account.card.password.old": "現在のパスワード",
"account.card.password.new": "新規パスワード", "account.card.password.new": "新規パスワード",
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.", "account.card.password.noPasswordSet": "パスワードが設定されていません。メールアドレスとパスワードを使用してサインインするには、パスワードを作成する必要があります。",
"account.notify.password.success": "パスワードの変更に成功しました", "account.notify.password.success": "パスワードの変更に成功しました",
"account.card.oauth.title": "ソーシャルログイン", "account.card.oauth.title": "ソーシャルログイン",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "リンク解除", "account.card.oauth.unlink": "リンク解除",
"account.card.oauth.unlinked": "リンクされていません", "account.card.oauth.unlinked": "リンクされていません",
"account.modal.unlink.title": "アカウントのリンクを解除", "account.modal.unlink.title": "アカウントのリンクを解除",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials", "account.modal.unlink.description": "ソーシャルアカウントのリンクを解除すると、ログイン認証情報を忘れた場合、アカウントを失う可能性があります。",
"account.notify.oauth.unlinked.success": "リンク解除に成功しました", "account.notify.oauth.unlinked.success": "リンク解除に成功しました",
"account.card.security.title": "セキュリティ", "account.card.security.title": "セキュリティ",
"account.card.security.totp.enable.description": "2段階認証を有効にするため、現在のパスワードを入力してください", "account.card.security.totp.enable.description": "2段階認証を有効にするため、現在のパスワードを入力してください",
@@ -121,12 +121,12 @@ export default {
"account.shares.table.name": "名前", "account.shares.table.name": "名前",
"account.shares.table.description": "説明", "account.shares.table.description": "説明",
"account.shares.table.visitors": "訪問者", "account.shares.table.visitors": "訪問者",
"account.shares.table.expiresAt": "Expires on", "account.shares.table.expiresAt": "有効期限",
"account.shares.table.createdAt": "Created on", "account.shares.table.createdAt": "作成日",
"account.shares.table.size": "サイズ", "account.shares.table.size": "サイズ",
"account.shares.modal.share-informations": "共有情報", "account.shares.modal.share-informations": "共有情報",
"account.shares.modal.share-link": "共有リンク", "account.shares.modal.share-link": "共有リンク",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "共有を削除: {share}",
"account.shares.modal.delete.description": "この共有を削除してもよろしいですか?", "account.shares.modal.delete.description": "この共有を削除してもよろしいですか?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
@@ -150,12 +150,12 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "年間", "account.reverseShares.modal.expiration.year-singular": "年間",
"account.reverseShares.modal.expiration.year-plural": "年間", "account.reverseShares.modal.expiration.year-plural": "年間",
"account.reverseShares.modal.max-size.label": "最大ファイルサイズ", "account.reverseShares.modal.max-size.label": "最大ファイルサイズ",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "メール通知を送信",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.send-email.description": "このファイルリクエストリンクを使用して共有が作成されるとメール通知が送信されます。",
"account.reverseShares.modal.simplified": "シンプルモード", "account.reverseShares.modal.simplified": "シンプルモード",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "ファイルをアップロードした人が簡単に共有できるようにします。共有の名前と説明のみをカスタマイズできます。",
"account.reverseShares.modal.public-access": "公開アクセス", "account.reverseShares.modal.public-access": "公開アクセス",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "このファイルリクエストで作成された共有を公開します。無効にするとあなたと共有作成者だけが共有を表示できます。",
"account.reverseShares.modal.max-use.label": "最大回数", "account.reverseShares.modal.max-use.label": "最大回数",
"account.reverseShares.modal.max-use.description": "このURLを使用してファイルをアップロードできる最大回数です。", "account.reverseShares.modal.max-use.description": "このURLを使用してファイルをアップロードできる最大回数です。",
"account.reverseShare.never-expires": "このファイルリクエストリンクは期限切れになりません。", "account.reverseShare.never-expires": "このファイルリクエストリンクは期限切れになりません。",
@@ -183,14 +183,14 @@ export default {
"admin.users.table.username": "ユーザー名", "admin.users.table.username": "ユーザー名",
"admin.users.table.email": "メールアドレス", "admin.users.table.email": "メールアドレス",
"admin.users.table.admin": "管理画面", "admin.users.table.admin": "管理画面",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "ユーザーの編集: {username}",
"admin.users.edit.update.admin-privileges": "管理者権限", "admin.users.edit.update.admin-privileges": "管理者権限",
"admin.users.edit.update.change-password.title": "パスワードを変更", "admin.users.edit.update.change-password.title": "パスワードを変更",
"admin.users.edit.update.change-password.field": "新規パスワード", "admin.users.edit.update.change-password.field": "新規パスワード",
"admin.users.edit.update.change-password.button": "新しいパスワードを保存", "admin.users.edit.update.change-password.button": "新しいパスワードを保存",
"admin.users.edit.update.notify.password.success": "パスワードの変更に成功しました", "admin.users.edit.update.notify.password.success": "パスワードの変更に成功しました",
"admin.users.edit.delete.title": "Delete user: {username} ?", "admin.users.edit.delete.title": "ユーザーを削除: {username}",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "このユーザーとそのすべての共有を本当に削除しますか?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "ユーザーを作成", "admin.users.modal.create.title": "ユーザーを作成",
"admin.users.modal.create.username": "ユーザー名", "admin.users.modal.create.username": "ユーザー名",
@@ -206,17 +206,20 @@ export default {
"admin.shares.table.id": "共有ID", "admin.shares.table.id": "共有ID",
"admin.shares.table.username": "作成者", "admin.shares.table.username": "作成者",
"admin.shares.table.visitors": "訪問者", "admin.shares.table.visitors": "訪問者",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "有効期限",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "共有を削除: {id}",
"admin.shares.edit.delete.description": "この共有を削除してもよろしいですか?", "admin.shares.edit.delete.description": "この共有を削除してもよろしいですか?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "アップロード", "upload.title": "アップロード",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "共有を仕上げている最中にエラーが発生しました。", "upload.notify.generic-error": "共有を仕上げている最中にエラーが発生しました。",
"upload.notify.count-failed": "{count} ファイルがアップロードに失敗しました。再度お試しください。", "upload.notify.count-failed": "{count} ファイルがアップロードに失敗しました。再度お試しください。",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "ファイルをアップロード", "upload.dropzone.title": "ファイルをアップロード",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "共有を開始するにはここにファイルをドラッグ&ドロップしてください。受け入れ可能なファイルの合計サイズは{maxSize}までです。",
"upload.dropzone.notify.file-too-big": "アップロードしようとしたファイルは、最大ファイルサイズの{maxSize} を超えています。", "upload.dropzone.notify.file-too-big": "アップロードしようとしたファイルは、最大ファイルサイズの{maxSize} を超えています。",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "ファイル名", "upload.filelist.name": "ファイル名",
@@ -228,8 +231,8 @@ export default {
"upload.modal.not-signed-in": "サインインしていません", "upload.modal.not-signed-in": "サインインしていません",
"upload.modal.not-signed-in-description": "共有の手動削除と訪問者カウンターは表示できません。", "upload.modal.not-signed-in-description": "共有の手動削除と訪問者カウンターは表示できません。",
"upload.modal.expires.never": "永久", "upload.modal.expires.never": "永久",
"upload.modal.expires.never-long": "Permanent share", "upload.modal.expires.never-long": "永久シェア",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.", "upload.modal.expires.error.too-long": "有効期限が最大値{max}を超えています。",
"upload.modal.link.label": "リンク", "upload.modal.link.label": "リンク",
"upload.modal.expires.label": "有効期限", "upload.modal.expires.label": "有効期限",
"upload.modal.expires.minute-singular": "分間", "upload.modal.expires.minute-singular": "分間",
@@ -272,16 +275,16 @@ export default {
"share.error.access-denied.title": "プライベートシェア", "share.error.access-denied.title": "プライベートシェア",
"share.error.access-denied.description": "現在のアカウントにはこの共有にアクセスする権限がありません", "share.error.access-denied.description": "現在のアカウントにはこの共有にアクセスする権限がありません",
"share.modal.password.title": "パスワードが必要です", "share.modal.password.title": "パスワードが必要です",
"share.modal.password.description": "Please enter the password to acces this share.", "share.modal.password.description": "この共有にアクセスするにはパスワードを入力してください。",
"share.modal.password": "パスワード", "share.modal.password": "パスワード",
"share.modal.error.invalid-password": "パスワードが間違っています", "share.modal.error.invalid-password": "パスワードが間違っています",
"share.button.download-all": "全てダウンロード", "share.button.download-all": "全てダウンロード",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.", "share.notify.download-all-preparing": "共有の準備中です。数分後にもう一度お試しください。",
"share.modal.file-link": "ファイルリンク", "share.modal.file-link": "ファイルリンク",
"share.table.name": "ファイル名", "share.table.name": "ファイル名",
"share.table.size": "サイズ", "share.table.size": "サイズ",
"share.modal.file-preview.error.not-supported.title": "プレビューに対応していません", "share.modal.file-preview.error.not-supported.title": "プレビューに対応していません",
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.", "share.modal.file-preview.error.not-supported.description": "このファイル形式のプレビューはサポートされていません。ファイルをダウンロードして表示してください。",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "編集 {shareId}", "share.edit.title": "編集 {shareId}",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "アプリの名前", "admin.config.general.app-name.description": "アプリの名前",
"admin.config.general.app-url": "アプリ名", "admin.config.general.app-url": "アプリ名",
"admin.config.general.app-url.description": "Pingvin Shareで利用できるURL", "admin.config.general.app-url.description": "Pingvin Shareで利用できるURL",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "ホームページを表示する", "admin.config.general.show-home-page": "ホームページを表示する",
"admin.config.general.show-home-page.description": "ホームページを表示するかどうか選択", "admin.config.general.show-home-page.description": "ホームページを表示するかどうか選択",
"admin.config.general.session-duration": "セッション期間", "admin.config.general.session-duration": "セッション期間",
@@ -307,24 +312,24 @@ export default {
"admin.config.general.logo": "ロゴ", "admin.config.general.logo": "ロゴ",
"admin.config.general.logo.description": "新しい画像をアップロードしてロゴを変更できます。画像は、PNG形式でアスペクト比が1:1である必要があります。", "admin.config.general.logo.description": "新しい画像をアップロードしてロゴを変更できます。画像は、PNG形式でアスペクト比が1:1である必要があります。",
"admin.config.general.logo.placeholder": "画像を選択", "admin.config.general.logo.placeholder": "画像を選択",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "メール受信者の共有を有効にする",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "受信者とのメール共有を許可するかどうか。SMTPが有効な場合にのみこれを有効にします。",
"admin.config.email.share-recipients-subject": "宛先への件名", "admin.config.email.share-recipients-subject": "宛先への件名",
"admin.config.email.share-recipients-subject.description": "メールで共有された相手に送信メールの件名です。", "admin.config.email.share-recipients-subject.description": "メールで共有された相手に送信メールの件名です。",
"admin.config.email.share-recipients-message": "宛先への本文", "admin.config.email.share-recipients-message": "宛先への本文",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.", "admin.config.email.share-recipients-message.description": "共有受信者に送信されるメッセージ。使用可能な変数:\n {creator} - 共有の作成者のユーザー名\n {shareUrl} - 共有の URL\n {desc} - 共有の説明\n {expires} - 共有の有効期限\n これらの変数は実際の値に置き換えられます。",
"admin.config.email.reverse-share-subject": "ファイルリクエストの件名", "admin.config.email.reverse-share-subject": "ファイルリクエストの件名",
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.", "admin.config.email.reverse-share-subject.description": "誰かがあなたのファイルリクエストリンクを使用して共有を作成したときに送信されるメールの件名。",
"admin.config.email.reverse-share-message": "ファイルリクエストの本文", "admin.config.email.reverse-share-message": "ファイルリクエストの本文",
"admin.config.email.reverse-share-message.description": "あなたが作成したファイルリクエストリンクからファイルがアップロードされた場合に送信されるメールの本文です。{shareUrl} は、作成者の名前とURLにより置き換えられます。", "admin.config.email.reverse-share-message.description": "あなたが作成したファイルリクエストリンクからファイルがアップロードされた場合に送信されるメールの本文です。{shareUrl} は、作成者の名前とURLにより置き換えられます。",
"admin.config.email.reset-password-subject": "パスワードリセットの件名", "admin.config.email.reset-password-subject": "パスワードリセットの件名",
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.", "admin.config.email.reset-password-subject.description": "ユーザーがパスワードのリセットを要求したときに送信されるメールの件名。",
"admin.config.email.reset-password-message": "パスワードリセットの本文", "admin.config.email.reset-password-message": "パスワードリセットの本文",
"admin.config.email.reset-password-message.description": "あなたが作成したファイルリクエストリンクからファイルがアップロードされた場合に送信されるメールの本文です。{url} は、実際のパスワードリセットURLによって置き換えられます。", "admin.config.email.reset-password-message.description": "あなたが作成したファイルリクエストリンクからファイルがアップロードされた場合に送信されるメールの本文です。{url} は、実際のパスワードリセットURLによって置き換えられます。",
"admin.config.email.invite-subject": "無効な件名", "admin.config.email.invite-subject": "無効な件名",
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.", "admin.config.email.invite-subject.description": "管理者がユーザーを招待するときに送信されるメールの件名。",
"admin.config.email.invite-message": "無効な本文", "admin.config.email.invite-message": "無効な本文",
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.", "admin.config.email.invite-message.description": "管理者がユーザーを招待したときに送信されるメッセージ。{url}は招待URLに、{email}はメールアドレスに、{password}はユーザーのパスワードに置き換えられます。",
"admin.config.share.allow-registration": "登録を許可する", "admin.config.share.allow-registration": "登録を許可する",
"admin.config.share.allow-registration.description": "登録を許可するかどうかを選択してください。", "admin.config.share.allow-registration.description": "登録を許可するかどうかを選択してください。",
"admin.config.share.allow-unauthenticated-shares": "ログインしていない状態での共有を許可する", "admin.config.share.allow-unauthenticated-shares": "ログインしていない状態での共有を許可する",
@@ -336,17 +341,17 @@ export default {
"admin.config.share.zip-compression-level": "Zip圧縮レベル", "admin.config.share.zip-compression-level": "Zip圧縮レベル",
"admin.config.share.zip-compression-level.description": "ファイルサイズと圧縮速度のバランスを取るように、レベルを調整できます。有効な値は09の間で、0が無圧縮、9で最大限の圧縮となります。 ", "admin.config.share.zip-compression-level.description": "ファイルサイズと圧縮速度のバランスを取るように、レベルを調整できます。有効な値は09の間で、0が無圧縮、9で最大限の圧縮となります。 ",
"admin.config.share.chunk-size": "チャンクサイズ", "admin.config.share.chunk-size": "チャンクサイズ",
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.", "admin.config.share.chunk-size.description": "インターネット接続に応じて、効率と信頼性のバランスをとるためにアップロードのチャンクサイズ (バイト単位) を調整します。チャンクを小さくすると、不安定な接続での成功率が向上し、チャンクを大きくすると、安定した接続でのアップロードが速くなります。",
"admin.config.share.auto-open-share-modal": "共有モーダルを自動的に開く", "admin.config.share.auto-open-share-modal": "共有モーダルを自動的に開く",
"admin.config.share.auto-open-share-modal.description": "ユーザーがファイルを選択すると、共有作成モーダルが自動的に表示されるため、手動でボタンをクリックする必要がありません。", "admin.config.share.auto-open-share-modal.description": "ユーザーがファイルを選択すると、共有作成モーダルが自動的に表示されるため、手動でボタンをクリックする必要がありません。",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "有効",
"admin.config.smtp.enabled.description": "SMTPを有効にするかどうかを選択してください。SMTPサーバーのホスト名、ポート番号、電子メールアドレス、ユーザー名、パスワードが入力されている場合にのみ、有効にしてください。", "admin.config.smtp.enabled.description": "SMTPを有効にするかどうかを選択してください。SMTPサーバーのホスト名、ポート番号、電子メールアドレス、ユーザー名、パスワードが入力されている場合にのみ、有効にしてください。",
"admin.config.smtp.host": "ホスト名", "admin.config.smtp.host": "ホスト名",
"admin.config.smtp.host.description": "SMTPサーバーのホスト名", "admin.config.smtp.host.description": "SMTPサーバーのホスト名",
"admin.config.smtp.port": "ポート番号", "admin.config.smtp.port": "ポート番号",
"admin.config.smtp.port.description": "SMTPサーバーのポート番号", "admin.config.smtp.port.description": "SMTPサーバーのポート番号",
"admin.config.smtp.email": "メールアドレス", "admin.config.smtp.email": "メールアドレス",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "メールの送信元となるメールアドレス",
"admin.config.smtp.username": "ユーザー名", "admin.config.smtp.username": "ユーザー名",
"admin.config.smtp.username.description": "SMTPサーバーのユーザー名", "admin.config.smtp.username.description": "SMTPサーバーのユーザー名",
"admin.config.smtp.password": "パスワード", "admin.config.smtp.password": "パスワード",
@@ -382,8 +387,8 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuthアプリのクライアントシークレット", "admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuthアプリのクライアントシークレット",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Discordアカウントを使用したログインを許可するかどうかを設定します", "admin.config.oauth.discord-enabled.description": "Discordアカウントを使用したログインを許可するかどうかを設定します",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Discord限定ユーザー",
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.", "admin.config.oauth.discord-limited-users.description": "Discord IDによって特定のユーザーのサインインを制限します。無効にするには空白のままにします。",
"admin.config.oauth.discord-limited-guild": "Discord限定サーバーID", "admin.config.oauth.discord-limited-guild": "Discord限定サーバーID",
"admin.config.oauth.discord-limited-guild.description": "特定のサーバーのユーザーにサインインを制限します。無効にするには空白のままにしてください。", "admin.config.oauth.discord-limited-guild.description": "特定のサーバーのユーザーにサインインを制限します。無効にするには空白のままにしてください。",
"admin.config.oauth.discord-client-id": "Discord クライアントID", "admin.config.oauth.discord-client-id": "Discord クライアントID",
@@ -409,14 +414,14 @@ export default {
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret", "admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "OpenID Connect OAuthアプリのクライアントシークレット", "admin.config.oauth.oidc-client-secret.description": "OpenID Connect OAuthアプリのクライアントシークレット",
"admin.config.category.ldap": "LDAP", "admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP", "admin.config.ldap.enabled": "LDAPを有効化",
"admin.config.ldap.enabled.description": "ユーザーログインにLDAP認証を使用する", "admin.config.ldap.enabled.description": "ユーザーログインにLDAP認証を使用する",
"admin.config.ldap.url": "サーバーURL", "admin.config.ldap.url": "サーバーURL",
"admin.config.ldap.url.description": "LDAPサーバーのURL", "admin.config.ldap.url.description": "LDAPサーバーのURL",
"admin.config.ldap.bind-dn": "バインド DN", "admin.config.ldap.bind-dn": "バインド DN",
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search", "admin.config.ldap.bind-dn.description": "ユーザー検索を実行するために使用されるデフォルトのユーザー",
"admin.config.ldap.bind-password": "パスワードをバインド", "admin.config.ldap.bind-password": "パスワードをバインド",
"admin.config.ldap.bind-password.description": "Password used to perform the user search", "admin.config.ldap.bind-password.description": "ユーザー検索を実行するために使用するパスワード",
"admin.config.ldap.search-base": "ユーザーベース", "admin.config.ldap.search-base": "ユーザーベース",
"admin.config.ldap.search-base.description": "ユーザーの検索が実行されるベースの場所", "admin.config.ldap.search-base.description": "ユーザーの検索が実行されるベースの場所",
"admin.config.ldap.search-query": "ユーザークエリ", "admin.config.ldap.search-query": "ユーザークエリ",
@@ -441,10 +446,10 @@ export default {
"error.msg.no_user": "この{0} アカウントにリンクしたユーザーが存在しません。", "error.msg.no_user": "この{0} アカウントにリンクしたユーザーが存在しません。",
"error.msg.no_email": "この{0} アカウントからメールアドレスを取得出来ません。", "error.msg.no_email": "この{0} アカウントからメールアドレスを取得出来ません。",
"error.msg.already_linked": "この{0} アカウントは、既に別のアカウントにリンクされています。", "error.msg.already_linked": "この{0} アカウントは、既に別のアカウントにリンクされています。",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.", "error.msg.not_linked": "この{0}アカウントはまだどのアカウントにもリンクされていません。",
"error.msg.unverified_account": "この {0} アカウントは認証されていません。認証後にもう一度お試しください。", "error.msg.unverified_account": "この {0} アカウントは認証されていません。認証後にもう一度お試しください。",
"error.msg.user_not_allowed": "サインインできません。", "error.msg.user_not_allowed": "サインインできません。",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.", "error.msg.cannot_get_user_info": "この{0}アカウントからユーザー情報を取得できません。",
"error.param.provider_github": "GitHub", "error.param.provider_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
@@ -462,7 +467,7 @@ export default {
"common.button.generate": "生成", "common.button.generate": "生成",
"common.button.done": "完了", "common.button.done": "完了",
"common.text.link": "リンク", "common.text.link": "リンク",
"common.text.navigate-to-link": "Visit link", "common.text.navigate-to-link": "リンクを開く",
"common.text.or": "または", "common.text.or": "または",
"common.text.redirecting": "リダイレクトしています...", "common.text.redirecting": "リダイレクトしています...",
"common.button.go-back": "戻る", "common.button.go-back": "戻る",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "업로드", "upload.title": "업로드",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "공유를 완료하는 동안 오류가 발생했습니다.", "upload.notify.generic-error": "공유를 완료하는 동안 오류가 발생했습니다.",
"upload.notify.count-failed": "{count}개의 파일을 업로드하지 못했습니다. 다시 시도하세요.", "upload.notify.count-failed": "{count}개의 파일을 업로드하지 못했습니다. 다시 시도하세요.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "파일 업로드", "upload.dropzone.title": "파일 업로드",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "이 앱의 이름", "admin.config.general.app-name.description": "이 앱의 이름",
"admin.config.general.app-url": "앱 URL", "admin.config.general.app-url": "앱 URL",
"admin.config.general.app-url.description": "Pingvin Share를 사용할 수 있는 URL", "admin.config.general.app-url.description": "Pingvin Share를 사용할 수 있는 URL",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "홈 페이지 표시", "admin.config.general.show-home-page": "홈 페이지 표시",
"admin.config.general.show-home-page.description": "홈 페이지를 표시할지 여부", "admin.config.general.show-home-page.description": "홈 페이지를 표시할지 여부",
"admin.config.general.session-duration": "세션 기간", "admin.config.general.session-duration": "세션 기간",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Uploaden", "upload.title": "Uploaden",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Er is een fout opgetreden tijdens het voltooien van uw share.", "upload.notify.generic-error": "Er is een fout opgetreden tijdens het voltooien van uw share.",
"upload.notify.count-failed": "{count} bestanden konden niet worden geüpload. Probeer het nogmaals.", "upload.notify.count-failed": "{count} bestanden konden niet worden geüpload. Probeer het nogmaals.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Bestanden uploaden", "upload.dropzone.title": "Bestanden uploaden",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Naam van de applicatie", "admin.config.general.app-name.description": "Naam van de applicatie",
"admin.config.general.app-url": "App-URL", "admin.config.general.app-url": "App-URL",
"admin.config.general.app-url.description": "De URL waar Pingvin Share bereikbaar is", "admin.config.general.app-url.description": "De URL waar Pingvin Share bereikbaar is",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Toon startpagina", "admin.config.general.show-home-page": "Toon startpagina",
"admin.config.general.show-home-page.description": "Toon of verberg de home pagina", "admin.config.general.show-home-page.description": "Toon of verberg de home pagina",
"admin.config.general.session-duration": "Sessieduur", "admin.config.general.session-duration": "Sessieduur",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Prześlij", "upload.title": "Prześlij",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Wystąpił błąd podczas zakończenia tworzenia udziału.", "upload.notify.generic-error": "Wystąpił błąd podczas zakończenia tworzenia udziału.",
"upload.notify.count-failed": "Nie udało się przesłać {count} plików. Próbuję ponownie.", "upload.notify.count-failed": "Nie udało się przesłać {count} plików. Próbuję ponownie.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Prześlij pliki", "upload.dropzone.title": "Prześlij pliki",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Nazwa aplikacji", "admin.config.general.app-name.description": "Nazwa aplikacji",
"admin.config.general.app-url": "Adres URL aplikacji", "admin.config.general.app-url": "Adres URL aplikacji",
"admin.config.general.app-url.description": "Pod którym adresem URL Pingvin Share jest dostępny", "admin.config.general.app-url.description": "Pod którym adresem URL Pingvin Share jest dostępny",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Pokaż stronę główną", "admin.config.general.show-home-page": "Pokaż stronę główną",
"admin.config.general.show-home-page.description": "Czy wyświetlać stronę główną", "admin.config.general.show-home-page.description": "Czy wyświetlać stronę główną",
"admin.config.general.session-duration": "Czas trwania sesji", "admin.config.general.session-duration": "Czas trwania sesji",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Carregar", "navbar.upload": "Carregar",
"navbar.signin": "Iniciar sessão", "navbar.signin": "Iniciar sessão",
"navbar.home": "Início", "navbar.home": "Início",
"navbar.signup": "Sign up", "navbar.signup": "Cadastre-se",
"navbar.links.shares": "Meus compartilhamentos", "navbar.links.shares": "Meus compartilhamentos",
"navbar.links.reverse": "Compartilhamentos reversos", "navbar.links.reverse": "Compartilhamentos reversos",
"navbar.avatar.account": "Minha conta", "navbar.avatar.account": "Minha conta",
@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "Auto-Hospedado", "home.bullet.a.name": "Auto-Hospedado",
"home.bullet.a.description": "Hospede o Pingvin Share em sua própria máquina.", "home.bullet.a.description": "Hospede o Pingvin Share em sua própria máquina.",
"home.bullet.b.name": "Privacidade", "home.bullet.b.name": "Privacidade",
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.", "home.bullet.b.description": "Seus arquivos são seus e nunca serão acessados por terceiros.",
"home.bullet.c.name": "Sem limite de tamanho de arquivo irritante", "home.bullet.c.name": "Sem limite de tamanho de arquivo irritante",
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.", "home.bullet.c.description": "Carregue arquivos tão grandes quanto quiser. Apenas o seu disco rígido será o seu limite.",
"home.button.start": "Começar", "home.button.start": "Começar",
"home.button.source": "Código-fonte", "home.button.source": "Código-fonte",
// END / // END /
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Esqueceu a sua senha?", "resetPassword.title": "Esqueceu a sua senha?",
"resetPassword.description": "Insira o seu e-mail para redefinir a sua senha.", "resetPassword.description": "Insira o seu e-mail para redefinir a sua senha.",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "Uma mensagem com um link para redefinir sua senha foi enviada se o e-mail fornecido existir.",
"resetPassword.button.back": "Voltar para a página inicial", "resetPassword.button.back": "Voltar para a página inicial",
"resetPassword.text.resetPassword": "Redefinir senha", "resetPassword.text.resetPassword": "Redefinir senha",
"resetPassword.text.enterNewPassword": "Digite uma nova senha", "resetPassword.text.enterNewPassword": "Digite uma nova senha",
"resetPassword.input.password": "Nova senha", "resetPassword.input.password": "Nova senha",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.", "resetPassword.notify.passwordReset": "A sua senha foi redefinida com sucesso.",
// /account // /account
"account.title": "A minha conta", "account.title": "A minha conta",
"account.card.info.title": "Informação sobre a conta", "account.card.info.title": "Informação sobre a conta",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "Senha", "account.card.password.title": "Senha",
"account.card.password.old": "Senha antiga", "account.card.password.old": "Senha antiga",
"account.card.password.new": "Nova senha", "account.card.password.new": "Nova senha",
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.", "account.card.password.noPasswordSet": "Você não tem uma senha definida. Para entrar utilizando seu e-mail e senha, você precisa criar uma senha.",
"account.notify.password.success": "Senha alterada com sucesso", "account.notify.password.success": "Senha alterada com sucesso",
"account.card.oauth.title": "Login com Redes Sociais", "account.card.oauth.title": "Login com Redes Sociais",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "Desvincular", "account.card.oauth.unlink": "Desvincular",
"account.card.oauth.unlinked": "Desvinculado", "account.card.oauth.unlinked": "Desvinculado",
"account.modal.unlink.title": "Desvincular conta", "account.modal.unlink.title": "Desvincular conta",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials", "account.modal.unlink.description": "Desvincular suas redes sociais pode fazer com que você perca sua conta se não se lembrar de seu nome de usuário e senha",
"account.notify.oauth.unlinked.success": "Desvinculado com sucesso", "account.notify.oauth.unlinked.success": "Desvinculado com sucesso",
"account.card.security.title": "Segurança", "account.card.security.title": "Segurança",
"account.card.security.totp.enable.description": "Digite a sua senha atual para começar a habilitar o TOTP", "account.card.security.totp.enable.description": "Digite a sua senha atual para começar a habilitar o TOTP",
@@ -121,12 +121,12 @@ export default {
"account.shares.table.name": "Nome", "account.shares.table.name": "Nome",
"account.shares.table.description": "Descrição", "account.shares.table.description": "Descrição",
"account.shares.table.visitors": "Visitantes", "account.shares.table.visitors": "Visitantes",
"account.shares.table.expiresAt": "Expires on", "account.shares.table.expiresAt": "Expira em",
"account.shares.table.createdAt": "Created on", "account.shares.table.createdAt": "Criada em",
"account.shares.table.size": "Tamanho", "account.shares.table.size": "Tamanho",
"account.shares.modal.share-informations": "Informações do compartilhamento", "account.shares.modal.share-informations": "Informações do compartilhamento",
"account.shares.modal.share-link": "Link do compartilhamento", "account.shares.modal.share-link": "Link do compartilhamento",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "Excluir o compartilhamento {share}",
"account.shares.modal.delete.description": "Tem certeza que deseja excluir este compartilhamento?", "account.shares.modal.delete.description": "Tem certeza que deseja excluir este compartilhamento?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
@@ -150,12 +150,12 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "Ano", "account.reverseShares.modal.expiration.year-singular": "Ano",
"account.reverseShares.modal.expiration.year-plural": "Anos", "account.reverseShares.modal.expiration.year-plural": "Anos",
"account.reverseShares.modal.max-size.label": "Tamanho máximo do compartilhamento", "account.reverseShares.modal.max-size.label": "Tamanho máximo do compartilhamento",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "Enviar notificações por email",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.send-email.description": "Enviar uma notificação por e-mail quando um compartilhamento for criado com este link reverso.",
"account.reverseShares.modal.simplified": "Modo simples", "account.reverseShares.modal.simplified": "Modo simples",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "Facilite o upload da pessoa para compartilhar o arquivo com você. Eles serão capazes de personalizar somente o nome e a descrição do compartilhamento.",
"account.reverseShares.modal.public-access": "Acesso público", "account.reverseShares.modal.public-access": "Acesso público",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "Faça os compartilhamentos criados com este compartilhamento reverso público. Se desativado, somente você e o criador do compartilhamento poderão visualizá-lo.",
"account.reverseShares.modal.max-use.label": "Limite de uso", "account.reverseShares.modal.max-use.label": "Limite de uso",
"account.reverseShares.modal.max-use.description": "A quantidade máxima de vezes que esta URL pode ser usada para criar um compartilhamento.", "account.reverseShares.modal.max-use.description": "A quantidade máxima de vezes que esta URL pode ser usada para criar um compartilhamento.",
"account.reverseShare.never-expires": "Este compartilhamento reverso nunca irá expirar.", "account.reverseShare.never-expires": "Este compartilhamento reverso nunca irá expirar.",
@@ -183,14 +183,14 @@ export default {
"admin.users.table.username": "Nome de usuário", "admin.users.table.username": "Nome de usuário",
"admin.users.table.email": "E-mail", "admin.users.table.email": "E-mail",
"admin.users.table.admin": "Admin", "admin.users.table.admin": "Admin",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "Editar usuário: {username}",
"admin.users.edit.update.admin-privileges": "Privilégios de administrador", "admin.users.edit.update.admin-privileges": "Privilégios de administrador",
"admin.users.edit.update.change-password.title": "Alterar senha", "admin.users.edit.update.change-password.title": "Alterar senha",
"admin.users.edit.update.change-password.field": "Nova senha", "admin.users.edit.update.change-password.field": "Nova senha",
"admin.users.edit.update.change-password.button": "Salvar nova senha", "admin.users.edit.update.change-password.button": "Salvar nova senha",
"admin.users.edit.update.notify.password.success": "Senha alterada com sucesso", "admin.users.edit.update.notify.password.success": "Senha alterada com sucesso",
"admin.users.edit.delete.title": "Delete user: {username} ?", "admin.users.edit.delete.title": "Excluir usuário {username} ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "Você realmente quer excluir este usuário e todos os seus compartilhamentos?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Criar usuário", "admin.users.modal.create.title": "Criar usuário",
"admin.users.modal.create.username": "Nome de usuário", "admin.users.modal.create.username": "Nome de usuário",
@@ -206,17 +206,20 @@ export default {
"admin.shares.table.id": "ID do Compartilhamento", "admin.shares.table.id": "ID do Compartilhamento",
"admin.shares.table.username": "Criador", "admin.shares.table.username": "Criador",
"admin.shares.table.visitors": "Visitantes", "admin.shares.table.visitors": "Visitantes",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "Expira em",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "Excluir o compartilhamento {id}",
"admin.shares.edit.delete.description": "Tem certeza que deseja excluir este compartilhamento?", "admin.shares.edit.delete.description": "Tem certeza que deseja excluir este compartilhamento?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Carregar", "upload.title": "Carregar",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Ocorreu um erro ao terminar seu compartilhamento.", "upload.notify.generic-error": "Ocorreu um erro ao terminar seu compartilhamento.",
"upload.notify.count-failed": "Falha ao enviar {count} arquivos. Tentando novamente.", "upload.notify.count-failed": "Falha ao enviar {count} arquivos. Tentando novamente.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Carregar arquivos", "upload.dropzone.title": "Carregar arquivos",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Arraste os arquivos aqui para iniciar o seu compartilhamento. Aceitamos apenas arquivos até {maxSize} no total.",
"upload.dropzone.notify.file-too-big": "Seus arquivos excedem o tamanho máximo do compartilhamento {maxSize}.", "upload.dropzone.notify.file-too-big": "Seus arquivos excedem o tamanho máximo do compartilhamento {maxSize}.",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "Nome", "upload.filelist.name": "Nome",
@@ -228,8 +231,8 @@ export default {
"upload.modal.not-signed-in": "Você não está conectado", "upload.modal.not-signed-in": "Você não está conectado",
"upload.modal.not-signed-in-description": "Você não poderá excluir seu compartilhamento manualmente e visualizar a contagem de visitantes.", "upload.modal.not-signed-in-description": "Você não poderá excluir seu compartilhamento manualmente e visualizar a contagem de visitantes.",
"upload.modal.expires.never": "nunca", "upload.modal.expires.never": "nunca",
"upload.modal.expires.never-long": "Permanent share", "upload.modal.expires.never-long": "Compartilhamento permanente",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.", "upload.modal.expires.error.too-long": "Data de expiração excede o máximo de {max}.",
"upload.modal.link.label": "Link", "upload.modal.link.label": "Link",
"upload.modal.expires.label": "Expiração", "upload.modal.expires.label": "Expiração",
"upload.modal.expires.minute-singular": "Minuto", "upload.modal.expires.minute-singular": "Minuto",
@@ -272,16 +275,16 @@ export default {
"share.error.access-denied.title": "Compartilhamento privado", "share.error.access-denied.title": "Compartilhamento privado",
"share.error.access-denied.description": "A conta atual não tem permissão para acessar este compartilhamento", "share.error.access-denied.description": "A conta atual não tem permissão para acessar este compartilhamento",
"share.modal.password.title": "Senha necessária", "share.modal.password.title": "Senha necessária",
"share.modal.password.description": "Please enter the password to acces this share.", "share.modal.password.description": "Por favor, digite a senha para acessar este compartilhamento.",
"share.modal.password": "Senha", "share.modal.password": "Senha",
"share.modal.error.invalid-password": "Senha inválida", "share.modal.error.invalid-password": "Senha inválida",
"share.button.download-all": "Transferir tudo", "share.button.download-all": "Transferir tudo",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.", "share.notify.download-all-preparing": "O compartilhamento está sendo preparado. Tente novamente em alguns minutos.",
"share.modal.file-link": "Link do arquivo", "share.modal.file-link": "Link do arquivo",
"share.table.name": "Nome", "share.table.name": "Nome",
"share.table.size": "Tamanho", "share.table.size": "Tamanho",
"share.modal.file-preview.error.not-supported.title": "Visualização não suportada", "share.modal.file-preview.error.not-supported.title": "Visualização não suportada",
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.", "share.modal.file-preview.error.not-supported.description": "Pré-visualizações não são suportadas para este tipo de arquivos. Por favor, baixe o arquivo para visualizá-lo.",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "Editar {shareId}", "share.edit.title": "Editar {shareId}",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Nome da aplicação", "admin.config.general.app-name.description": "Nome da aplicação",
"admin.config.general.app-url": "URL do Aplicativo", "admin.config.general.app-url": "URL do Aplicativo",
"admin.config.general.app-url.description": "Em qual URL o Pingvin Share está disponível", "admin.config.general.app-url.description": "Em qual URL o Pingvin Share está disponível",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Mostrar a página inicial", "admin.config.general.show-home-page": "Mostrar a página inicial",
"admin.config.general.show-home-page.description": "Mostrar ou não a página inicial", "admin.config.general.show-home-page.description": "Mostrar ou não a página inicial",
"admin.config.general.session-duration": "Duração de sessão", "admin.config.general.session-duration": "Duração de sessão",
@@ -307,24 +312,24 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Alterar o seu logo carregando uma nova imagem. A imagem deve ser PNG e deve ter o formato 1:1.", "admin.config.general.logo.description": "Alterar o seu logo carregando uma nova imagem. A imagem deve ser PNG e deve ter o formato 1:1.",
"admin.config.general.logo.placeholder": "Escolhe uma imagem", "admin.config.general.logo.placeholder": "Escolhe uma imagem",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Ativar compartilhamento por email",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Se deseja permitir o compartilhamento por e-mail com destinatários. Só ative isto se o SMTP estiver ativado.",
"admin.config.email.share-recipients-subject": "Assunto dos destinatários do compartilhamento", "admin.config.email.share-recipients-subject": "Assunto dos destinatários do compartilhamento",
"admin.config.email.share-recipients-subject.description": "Assunto do e-mail enviado para os destinatários do compartilhamento.", "admin.config.email.share-recipients-subject.description": "Assunto do e-mail enviado para os destinatários do compartilhamento.",
"admin.config.email.share-recipients-message": "Assunto dos destinatários do compartilhamento", "admin.config.email.share-recipients-message": "Assunto dos destinatários do compartilhamento",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.", "admin.config.email.share-recipients-message.description": "Mensagem que é enviada aos destinatários do compartilhamento. Variáveis disponíveis:\n {creator} - O nome de usuário do criador do compartilhamento\n {shareUrl} - O URL do compartilhamento\n {desc} - A descrição do compartilhamento\n {expires} - A data de expiração do compartilhamento\n As variáveis serão substituídas pelo valor real.",
"admin.config.email.reverse-share-subject": "Assunto do compartilhamento reverso", "admin.config.email.reverse-share-subject": "Assunto do compartilhamento reverso",
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.", "admin.config.email.reverse-share-subject.description": "Assunto do e-mail enviado quando alguém criou um compartilhamento com o seu link reverso.",
"admin.config.email.reverse-share-message": "Mensagem do compartilhamento reverso", "admin.config.email.reverse-share-message": "Mensagem do compartilhamento reverso",
"admin.config.email.reverse-share-message.description": "Mensagem enviada quando alguém criou um compartilhamento com o link reverso. {shareUrl} será substituído pelo nome do criador e pela URL de compartilhamento.", "admin.config.email.reverse-share-message.description": "Mensagem enviada quando alguém criou um compartilhamento com o link reverso. {shareUrl} será substituído pelo nome do criador e pela URL de compartilhamento.",
"admin.config.email.reset-password-subject": "Redefinir assunto da senha", "admin.config.email.reset-password-subject": "Redefinir assunto da senha",
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.", "admin.config.email.reset-password-subject.description": "Assunto do e-mail enviado quando um usuário solicita uma redefinição de senha.",
"admin.config.email.reset-password-message": "Mensagem de redefinição de senha", "admin.config.email.reset-password-message": "Mensagem de redefinição de senha",
"admin.config.email.reset-password-message.description": "Mensagem enviada quando um usuário solicita uma redefinição de senha. {url} será substituído pela URL de redefinição de senha.", "admin.config.email.reset-password-message.description": "Mensagem enviada quando um usuário solicita uma redefinição de senha. {url} será substituído pela URL de redefinição de senha.",
"admin.config.email.invite-subject": "Assunto do convite", "admin.config.email.invite-subject": "Assunto do convite",
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.", "admin.config.email.invite-subject.description": "Assunto do e-mail enviado quando um administrador convida um usuário.",
"admin.config.email.invite-message": "Mensagem de convite", "admin.config.email.invite-message": "Mensagem de convite",
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.", "admin.config.email.invite-message.description": "Mensagem que é enviada quando um administrador convida um usuário. {url} será substituído pelo URL de convite, {email} com o e-mail e {password} com a senha do usuário.",
"admin.config.share.allow-registration": "Permitir novos registos", "admin.config.share.allow-registration": "Permitir novos registos",
"admin.config.share.allow-registration.description": "Se o registro é permitido", "admin.config.share.allow-registration.description": "Se o registro é permitido",
"admin.config.share.allow-unauthenticated-shares": "Permitir compartilhamentos sem autenticação", "admin.config.share.allow-unauthenticated-shares": "Permitir compartilhamentos sem autenticação",
@@ -336,17 +341,17 @@ export default {
"admin.config.share.zip-compression-level": "Nível de compressão", "admin.config.share.zip-compression-level": "Nível de compressão",
"admin.config.share.zip-compression-level.description": "Ajuste o nível para equilibrar entre o tamanho do arquivo e a velocidade de compressão. Valores válidos vão de 0 a 9, com 0 sendo sem compressão e 9 sendo compressão máxima. ", "admin.config.share.zip-compression-level.description": "Ajuste o nível para equilibrar entre o tamanho do arquivo e a velocidade de compressão. Valores válidos vão de 0 a 9, com 0 sendo sem compressão e 9 sendo compressão máxima. ",
"admin.config.share.chunk-size": "Tamanho do pedaço", "admin.config.share.chunk-size": "Tamanho do pedaço",
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.", "admin.config.share.chunk-size.description": "Ajuste o tamanho do pedaço (em bytes) para seus uploads equilibrarem eficiência e confiabilidade de acordo com sua conexão com a internet. Pedaços menores podem aumentar as taxas de sucesso para conexões instáveis, enquanto partes maiores aceleram uploads para conexões estáveis.",
"admin.config.share.auto-open-share-modal": "Abertura automática do modal de criação de compartilhamento", "admin.config.share.auto-open-share-modal": "Abertura automática do modal de criação de compartilhamento",
"admin.config.share.auto-open-share-modal.description": "O modal de criação de compartilhamento aparece automaticamente quando um usuário seleciona arquivos, eliminando a necessidade de clicar manualmente no botão.", "admin.config.share.auto-open-share-modal.description": "O modal de criação de compartilhamento aparece automaticamente quando um usuário seleciona arquivos, eliminando a necessidade de clicar manualmente no botão.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "Habilitar",
"admin.config.smtp.enabled.description": "Se o SMTP está habilitado. Apenas defina como verdadeiro se você digitou o servidor, porta, e-mail, usuário e senha do seu servidor SMTP.", "admin.config.smtp.enabled.description": "Se o SMTP está habilitado. Apenas defina como verdadeiro se você digitou o servidor, porta, e-mail, usuário e senha do seu servidor SMTP.",
"admin.config.smtp.host": "Servidor", "admin.config.smtp.host": "Servidor",
"admin.config.smtp.host.description": "Nome do Servidor SMTP", "admin.config.smtp.host.description": "Nome do Servidor SMTP",
"admin.config.smtp.port": "Porta", "admin.config.smtp.port": "Porta",
"admin.config.smtp.port.description": "Porta do Servidor SMTP", "admin.config.smtp.port.description": "Porta do Servidor SMTP",
"admin.config.smtp.email": "E-mail", "admin.config.smtp.email": "E-mail",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Endereço de e-mail do qual os e-mails são enviados",
"admin.config.smtp.username": "Nome de usuário", "admin.config.smtp.username": "Nome de usuário",
"admin.config.smtp.username.description": "Nome de usuário do servidor SMTP", "admin.config.smtp.username.description": "Nome de usuário do servidor SMTP",
"admin.config.smtp.password": "Senha", "admin.config.smtp.password": "Senha",
@@ -382,8 +387,8 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Client secret do aplicativo Microsoft OAuth", "admin.config.oauth.microsoft-client-secret.description": "Client secret do aplicativo Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Se o login do Discord está habilitado", "admin.config.oauth.discord-enabled.description": "Se o login do Discord está habilitado",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Usuários limitados do Discord",
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.", "admin.config.oauth.discord-limited-users.description": "Limite de login em usuários específicos por sua ID do Discord. Deixe em branco para desativar.",
"admin.config.oauth.discord-limited-guild": "ID do servidor limitado do Discord", "admin.config.oauth.discord-limited-guild": "ID do servidor limitado do Discord",
"admin.config.oauth.discord-limited-guild.description": "Limite de login para usuários em um servidor específico. Deixe em branco para desativar.", "admin.config.oauth.discord-limited-guild.description": "Limite de login para usuários em um servidor específico. Deixe em branco para desativar.",
"admin.config.oauth.discord-client-id": "ID do Cliente Discord", "admin.config.oauth.discord-client-id": "ID do Cliente Discord",
@@ -409,14 +414,14 @@ export default {
"admin.config.oauth.oidc-client-secret": "Segredo do cliente OpenID Connect", "admin.config.oauth.oidc-client-secret": "Segredo do cliente OpenID Connect",
"admin.config.oauth.oidc-client-secret.description": "ID do cliente do aplicativo OpenID OAuth", "admin.config.oauth.oidc-client-secret.description": "ID do cliente do aplicativo OpenID OAuth",
"admin.config.category.ldap": "LDAP", "admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP", "admin.config.ldap.enabled": "Habilitar LDAP",
"admin.config.ldap.enabled.description": "Usar autenticação LDAP para login de usuário", "admin.config.ldap.enabled.description": "Usar autenticação LDAP para login de usuário",
"admin.config.ldap.url": "URL do Servidor", "admin.config.ldap.url": "URL do Servidor",
"admin.config.ldap.url.description": "URL do Servidor LDAP", "admin.config.ldap.url.description": "URL do Servidor LDAP",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Bind DN",
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search", "admin.config.ldap.bind-dn.description": "Usuário padrão usado para realizar a pesquisa de usuário",
"admin.config.ldap.bind-password": "Bind Password", "admin.config.ldap.bind-password": "Bind Password",
"admin.config.ldap.bind-password.description": "Password used to perform the user search", "admin.config.ldap.bind-password.description": "Senha usada para realizar a busca de usuários",
"admin.config.ldap.search-base": "Base de Usuários", "admin.config.ldap.search-base": "Base de Usuários",
"admin.config.ldap.search-base.description": "Localização base, onde a pesquisa do usuário será realizada", "admin.config.ldap.search-base.description": "Localização base, onde a pesquisa do usuário será realizada",
"admin.config.ldap.search-query": "Consulta de usuário", "admin.config.ldap.search-query": "Consulta de usuário",
@@ -441,10 +446,10 @@ export default {
"error.msg.no_user": "O usuário vinculado a esta conta {0} não existe.", "error.msg.no_user": "O usuário vinculado a esta conta {0} não existe.",
"error.msg.no_email": "Não é possível obter o endereço de e-mail desta conta {0}.", "error.msg.no_email": "Não é possível obter o endereço de e-mail desta conta {0}.",
"error.msg.already_linked": "Esta conta {0} já está vinculada a outra conta.", "error.msg.already_linked": "Esta conta {0} já está vinculada a outra conta.",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.", "error.msg.not_linked": "Esta conta {0} ainda não foi vinculada a nenhuma conta.",
"error.msg.unverified_account": "Esta conta {0} não foi verificada, tente novamente após a verificação.", "error.msg.unverified_account": "Esta conta {0} não foi verificada, tente novamente após a verificação.",
"error.msg.user_not_allowed": "Você não tem permissão para acessar.", "error.msg.user_not_allowed": "Você não tem permissão para acessar.",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.", "error.msg.cannot_get_user_info": "Não é possível obter suas informações de usuário desta conta {0}.",
"error.param.provider_github": "GitHub", "error.param.provider_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
@@ -462,7 +467,7 @@ export default {
"common.button.generate": "Gerar", "common.button.generate": "Gerar",
"common.button.done": "Concluído", "common.button.done": "Concluído",
"common.text.link": "Link", "common.text.link": "Link",
"common.text.navigate-to-link": "Visit link", "common.text.navigate-to-link": "Visitar Link",
"common.text.or": "ou", "common.text.or": "ou",
"common.text.redirecting": "Redirecionando...", "common.text.redirecting": "Redirecionando...",
"common.button.go-back": "Voltar", "common.button.go-back": "Voltar",

View File

@@ -34,7 +34,7 @@ export default {
"signIn.notify.totp-required.title": "Требуется двухфакторная аутентификация", "signIn.notify.totp-required.title": "Требуется двухфакторная аутентификация",
"signIn.notify.totp-required.description": "Пожалуйста, введите код Вашей 2-х факторной аутентификации", "signIn.notify.totp-required.description": "Пожалуйста, введите код Вашей 2-х факторной аутентификации",
"signIn.oauth.or": "ИЛИ", "signIn.oauth.or": "ИЛИ",
"signIn.oauth.signInWith": "Sign in with", "signIn.oauth.signInWith": "Войдите с помощью",
"signIn.oauth.github": "GitHub", "signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google", "signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft", "signIn.oauth.microsoft": "Microsoft",
@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Загрузить", "upload.title": "Загрузить",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Произошла ошибка при завершении вашей загрузки.", "upload.notify.generic-error": "Произошла ошибка при завершении вашей загрузки.",
"upload.notify.count-failed": "Не удалось загрузить файлы {count}. Повтор попытки.", "upload.notify.count-failed": "Не удалось загрузить файлы {count}. Повтор попытки.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Загрузить файлы", "upload.dropzone.title": "Загрузить файлы",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Видимое название приложения", "admin.config.general.app-name.description": "Видимое название приложения",
"admin.config.general.app-url": "URL-адрес приложения", "admin.config.general.app-url": "URL-адрес приложения",
"admin.config.general.app-url.description": "Адрес на котором доступен Pingvin Share", "admin.config.general.app-url.description": "Адрес на котором доступен Pingvin Share",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Показывать домашнюю страницу", "admin.config.general.show-home-page": "Показывать домашнюю страницу",
"admin.config.general.show-home-page.description": "Показывать ли домашнюю страницу или нет", "admin.config.general.show-home-page.description": "Показывать ли домашнюю страницу или нет",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",
@@ -462,9 +467,9 @@ export default {
"common.button.generate": "Сгенерировать", "common.button.generate": "Сгенерировать",
"common.button.done": "Готово", "common.button.done": "Готово",
"common.text.link": "Ссылка", "common.text.link": "Ссылка",
"common.text.navigate-to-link": "Visit link", "common.text.navigate-to-link": "Перейти по ссылке",
"common.text.or": "или", "common.text.or": "или",
"common.text.redirecting": "Redirecting...", "common.text.redirecting": "Идет перенаправление...",
"common.button.go-back": "Назад", "common.button.go-back": "Назад",
"common.button.go-home": "Домой", "common.button.go-home": "Домой",
"common.notify.copied": "Ваша ссылка скопирована в буфер обмена", "common.notify.copied": "Ваша ссылка скопирована в буфер обмена",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Naložite", "upload.title": "Naložite",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Prišlo je do napake pri ustvarjanju vašega deljenja.", "upload.notify.generic-error": "Prišlo je do napake pri ustvarjanju vašega deljenja.",
"upload.notify.count-failed": "Prišlo je do napake pri nalaganju toliko datotek: {count}. Poskušamo ponovno.", "upload.notify.count-failed": "Prišlo je do napake pri nalaganju toliko datotek: {count}. Poskušamo ponovno.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Naloži datoteke", "upload.dropzone.title": "Naloži datoteke",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Ime vaše aplikacije", "admin.config.general.app-name.description": "Ime vaše aplikacije",
"admin.config.general.app-url": "URL aplikacije", "admin.config.general.app-url": "URL aplikacije",
"admin.config.general.app-url.description": "Na katerem URL-ju je dostopen Pingvin Share", "admin.config.general.app-url.description": "Na katerem URL-ju je dostopen Pingvin Share",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Prikaži domačo stran", "admin.config.general.show-home-page": "Prikaži domačo stran",
"admin.config.general.show-home-page.description": "Ali prikazati domačo stran", "admin.config.general.show-home-page.description": "Ali prikazati domačo stran",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",

View File

@@ -4,33 +4,24 @@ export default {
"navbar.signin": "Sign in", "navbar.signin": "Sign in",
"navbar.home": "Home", "navbar.home": "Home",
"navbar.signup": "Sign up", "navbar.signup": "Sign up",
"navbar.links.shares": "My shares", "navbar.links.shares": "My shares",
"navbar.links.reverse": "Reverse shares", "navbar.links.reverse": "Reverse shares",
"navbar.avatar.account": "My account", "navbar.avatar.account": "My account",
"navbar.avatar.admin": "Administration", "navbar.avatar.admin": "Administration",
"navbar.avatar.signout": "Sign out", "navbar.avatar.signout": "Sign out",
// END navbar // END navbar
// / // /
"home.title": "A <h>self-hosted</h> file sharing platform.", "home.title": "A <h>self-hosted</h> file sharing platform.",
"home.description": "Do you really want to give your personal files in the hand of third parties like WeTransfer?",
"home.description":
"Do you really want to give your personal files in the hand of third parties like WeTransfer?",
"home.bullet.a.name": "Self-Hosted", "home.bullet.a.name": "Self-Hosted",
"home.bullet.a.description": "Host Pingvin Share on your own machine.", "home.bullet.a.description": "Host Pingvin Share on your own machine.",
"home.bullet.b.name": "Privacy", "home.bullet.b.name": "Privacy",
"home.bullet.b.description": "home.bullet.b.description": "Your files are yours and will never be accessed by third parties.",
"Your files are yours and will never be accessed by third parties.",
"home.bullet.c.name": "No annoying file size limit", "home.bullet.c.name": "No annoying file size limit",
"home.bullet.c.description": "home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
"Upload files as big as you want. Only your hard drive will be your limit.",
"home.button.start": "Get started", "home.button.start": "Get started",
"home.button.source": "Source code", "home.button.source": "Source code",
// END / // END /
// /auth/signin // /auth/signin
"signin.title": "Welcome back", "signin.title": "Welcome back",
"signin.description": "You don't have an account yet?", "signin.description": "You don't have an account yet?",
@@ -41,8 +32,7 @@ export default {
"signin.input.password.placeholder": "Your password", "signin.input.password.placeholder": "Your password",
"signin.button.submit": "Sign in", "signin.button.submit": "Sign in",
"signIn.notify.totp-required.title": "Two-factor authentication required", "signIn.notify.totp-required.title": "Two-factor authentication required",
"signIn.notify.totp-required.description": "signIn.notify.totp-required.description": "Please enter your two-factor authentication code",
"Please enter your two-factor authentication code",
"signIn.oauth.or": "OR", "signIn.oauth.or": "OR",
"signIn.oauth.signInWith": "Sign in with", "signIn.oauth.signInWith": "Sign in with",
"signIn.oauth.github": "GitHub", "signIn.oauth.github": "GitHub",
@@ -50,9 +40,7 @@ export default {
"signIn.oauth.microsoft": "Microsoft", "signIn.oauth.microsoft": "Microsoft",
"signIn.oauth.discord": "Discord", "signIn.oauth.discord": "Discord",
"signIn.oauth.oidc": "OpenID", "signIn.oauth.oidc": "OpenID",
// END /auth/signin // END /auth/signin
// /auth/signup // /auth/signup
"signup.title": "Create an account", "signup.title": "Create an account",
"signup.description": "Already have an account?", "signup.description": "Already have an account?",
@@ -62,42 +50,31 @@ export default {
"signup.input.email": "Email", "signup.input.email": "Email",
"signup.input.email.placeholder": "Your email", "signup.input.email.placeholder": "Your email",
"signup.button.submit": "Let's get started", "signup.button.submit": "Let's get started",
// END /auth/signup // END /auth/signup
// /auth/totp // /auth/totp
"totp.title": "TOTP Authentication", "totp.title": "TOTP Authentication",
"totp.button.signIn": "Sign in", "totp.button.signIn": "Sign in",
// END /auth/totp // END /auth/totp
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Forgot your password?", "resetPassword.title": "Forgot your password?",
"resetPassword.description": "Enter your email to reset your password.", "resetPassword.description": "Enter your email to reset your password.",
"resetPassword.notify.success": "resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
"A message with a link to reset your password has been sent if the provided email exists.",
"resetPassword.button.back": "Back to sign in page", "resetPassword.button.back": "Back to sign in page",
"resetPassword.text.resetPassword": "Reset password", "resetPassword.text.resetPassword": "Reset password",
"resetPassword.text.enterNewPassword": "Enter your new password", "resetPassword.text.enterNewPassword": "Enter your new password",
"resetPassword.input.password": "New password", "resetPassword.input.password": "New password",
"resetPassword.notify.passwordReset": "resetPassword.notify.passwordReset": "Your password has been successfully reset.",
"Your password has been successfully reset.",
// /account // /account
"account.title": "My account", "account.title": "My account",
"account.card.info.title": "Account info", "account.card.info.title": "Account info",
"account.card.info.username": "Username", "account.card.info.username": "Username",
"account.card.info.email": "Email", "account.card.info.email": "Email",
"account.notify.info.success": "Account updated successfully", "account.notify.info.success": "Account updated successfully",
"account.card.password.title": "Password", "account.card.password.title": "Password",
"account.card.password.old": "Old password", "account.card.password.old": "Old password",
"account.card.password.new": "New password", "account.card.password.new": "New password",
"account.card.password.noPasswordSet": "account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.",
"You do not have a password set. To sign in using your email and password, you need to create a password.",
"account.notify.password.success": "Password changed successfully", "account.notify.password.success": "Password changed successfully",
"account.card.oauth.title": "Social login", "account.card.oauth.title": "Social login",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google", "account.card.oauth.google": "Google",
@@ -108,15 +85,11 @@ export default {
"account.card.oauth.unlink": "Unlink", "account.card.oauth.unlink": "Unlink",
"account.card.oauth.unlinked": "Unlinked", "account.card.oauth.unlinked": "Unlinked",
"account.modal.unlink.title": "Unlink account", "account.modal.unlink.title": "Unlink account",
"account.modal.unlink.description": "account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
"Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
"account.notify.oauth.unlinked.success": "Unlinked successfully", "account.notify.oauth.unlinked.success": "Unlinked successfully",
"account.card.security.title": "Security", "account.card.security.title": "Security",
"account.card.security.totp.enable.description": "account.card.security.totp.enable.description": "Enter your current password to start enabling TOTP",
"Enter your current password to start enabling TOTP", "account.card.security.totp.disable.description": "Enter your current password to disable TOTP",
"account.card.security.totp.disable.description":
"Enter your current password to disable TOTP",
"account.card.security.totp.button.start": "Start", "account.card.security.totp.button.start": "Start",
"account.modal.totp.title": "Enable TOTP", "account.modal.totp.title": "Enable TOTP",
"account.modal.totp.step1": "Step 1: Add your authenticator", "account.modal.totp.step1": "Step 1: Add your authenticator",
@@ -127,29 +100,22 @@ export default {
"account.modal.totp.verify": "Verify", "account.modal.totp.verify": "Verify",
"account.notify.totp.disable": "TOTP disabled successfully", "account.notify.totp.disable": "TOTP disabled successfully",
"account.notify.totp.enable": "TOTP enabled successfully", "account.notify.totp.enable": "TOTP enabled successfully",
"account.card.language.title": "Language", "account.card.language.title": "Language",
"account.card.language.description": "account.card.language.description": "The project is translated by the community. Some languages might be incomplete.",
"The project is translated by the community. Some languages might be incomplete.",
"account.card.color.title": "Color scheme", "account.card.color.title": "Color scheme",
// ThemeSwitcher.tsx // ThemeSwitcher.tsx
"account.theme.dark": "Dark", "account.theme.dark": "Dark",
"account.theme.light": "Light", "account.theme.light": "Light",
"account.theme.system": "System", "account.theme.system": "System",
"account.button.delete": "Delete Account", "account.button.delete": "Delete Account",
"account.modal.delete.title": "Delete Account", "account.modal.delete.title": "Delete Account",
"account.modal.delete.description": "account.modal.delete.description": "Do you really want to delete your account including all your active shares?",
"Do you really want to delete your account including all your active shares?",
// END /account // END /account
// /account/shares // /account/shares
"account.shares.title": "My shares", "account.shares.title": "My shares",
"account.shares.title.empty": "It's empty here 👀", "account.shares.title.empty": "It's empty here 👀",
"account.shares.description.empty": "You don't have any shares.", "account.shares.description.empty": "You don't have any shares.",
"account.shares.button.create": "Create one", "account.shares.button.create": "Create one",
"account.shares.info.title": "Share informations", "account.shares.info.title": "Share informations",
"account.shares.table.id": "ID", "account.shares.table.id": "ID",
"account.shares.table.name": "Name", "account.shares.table.name": "Name",
@@ -158,25 +124,16 @@ export default {
"account.shares.table.expiresAt": "Expires on", "account.shares.table.expiresAt": "Expires on",
"account.shares.table.createdAt": "Created on", "account.shares.table.createdAt": "Created on",
"account.shares.table.size": "Size", "account.shares.table.size": "Size",
"account.shares.modal.share-informations": "Share informations", "account.shares.modal.share-informations": "Share informations",
"account.shares.modal.share-link": "Share link", "account.shares.modal.share-link": "Share link",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "Delete share: {share}",
"account.shares.modal.delete.description": "account.shares.modal.delete.description": "Do you really want to delete this share?",
"Do you really want to delete this share?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
"account.reverseShares.title": "Reverse shares", "account.reverseShares.title": "Reverse shares",
"account.reverseShares.description": "account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.",
"A reverse share allows you to generate a unique URL that allows external users to create a share.",
"account.reverseShares.title.empty": "It's empty here 👀", "account.reverseShares.title.empty": "It's empty here 👀",
"account.reverseShares.description.empty": "account.reverseShares.description.empty": "You don't have any reverse shares.",
"You don't have any reverse shares.",
// showCreateReverseShareModal.tsx // showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Create reverse share", "account.reverseShares.modal.title": "Create reverse share",
"account.reverseShares.modal.expiration.label": "Expiration", "account.reverseShares.modal.expiration.label": "Expiration",
@@ -192,28 +149,17 @@ export default {
"account.reverseShares.modal.expiration.month-plural": "Months", "account.reverseShares.modal.expiration.month-plural": "Months",
"account.reverseShares.modal.expiration.year-singular": "Year", "account.reverseShares.modal.expiration.year-singular": "Year",
"account.reverseShares.modal.expiration.year-plural": "Years", "account.reverseShares.modal.expiration.year-plural": "Years",
"account.reverseShares.modal.max-size.label": "Max share size", "account.reverseShares.modal.max-size.label": "Max share size",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "Send email notifications",
"account.reverseShares.modal.send-email.description": "account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
"Sends you an email notification when a share is created with this reverse share link.",
"account.reverseShares.modal.simplified": "Simple mode", "account.reverseShares.modal.simplified": "Simple mode",
"account.reverseShares.modal.simplified.description": "account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
"Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
"account.reverseShares.modal.public-access": "Public access", "account.reverseShares.modal.public-access": "Public access",
"account.reverseShares.modal.public-access.description": "account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
"Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
"account.reverseShares.modal.max-use.label": "Max uses", "account.reverseShares.modal.max-use.label": "Max uses",
"account.reverseShares.modal.max-use.description": "account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.",
"The maximum amount of times this URL can be used to create a share.",
"account.reverseShare.never-expires": "This reverse share will never expire.", "account.reverseShare.never-expires": "This reverse share will never expire.",
"account.reverseShare.expires-on": "account.reverseShare.expires-on": "This reverse share will expire on {expiration}.",
"This reverse share will expire on {expiration}.",
"account.reverseShares.table.no-shares": "No shares created yet", "account.reverseShares.table.no-shares": "No shares created yet",
"account.reverseShares.table.count.singular": "share", "account.reverseShares.table.count.singular": "share",
"account.reverseShares.table.count.plural": "shares", "account.reverseShares.table.count.plural": "shares",
@@ -221,15 +167,10 @@ export default {
"account.reverseShares.table.remaining": "Remaining uses", "account.reverseShares.table.remaining": "Remaining uses",
"account.reverseShares.table.max-size": "Max share size", "account.reverseShares.table.max-size": "Max share size",
"account.reverseShares.table.expires": "Expires at", "account.reverseShares.table.expires": "Expires at",
"account.reverseShares.modal.reverse-share-link": "Reverse share link", "account.reverseShares.modal.reverse-share-link": "Reverse share link",
"account.reverseShares.modal.delete.title": "Delete reverse share", "account.reverseShares.modal.delete.title": "Delete reverse share",
"account.reverseShares.modal.delete.description": "account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.",
"Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.",
// END /account/reverseShares // END /account/reverseShares
// /admin // /admin
"admin.title": "Administration", "admin.title": "Administration",
"admin.button.users": "User management", "admin.button.users": "User management",
@@ -237,84 +178,61 @@ export default {
"admin.button.config": "Configuration", "admin.button.config": "Configuration",
"admin.version": "Version", "admin.version": "Version",
// END /admin // END /admin
// /admin/users // /admin/users
"admin.users.title": "User management", "admin.users.title": "User management",
"admin.users.table.username": "Username", "admin.users.table.username": "Username",
"admin.users.table.email": "Email", "admin.users.table.email": "Email",
"admin.users.table.admin": "Admin", "admin.users.table.admin": "Admin",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "Edit user: {username}",
"admin.users.edit.update.admin-privileges": "Admin privileges", "admin.users.edit.update.admin-privileges": "Admin privileges",
"admin.users.edit.update.change-password.title": "Change password", "admin.users.edit.update.change-password.title": "Change password",
"admin.users.edit.update.change-password.field": "New password", "admin.users.edit.update.change-password.field": "New password",
"admin.users.edit.update.change-password.button": "Save new password", "admin.users.edit.update.change-password.button": "Save new password",
"admin.users.edit.update.notify.password.success": "admin.users.edit.update.notify.password.success": "Password changed successfully",
"Password changed successfully",
"admin.users.edit.delete.title": "Delete user: {username} ?", "admin.users.edit.delete.title": "Delete user: {username} ?",
"admin.users.edit.delete.description": "admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
"Do you really want to delete this user and all their shares?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Create user", "admin.users.modal.create.title": "Create user",
"admin.users.modal.create.username": "Username", "admin.users.modal.create.username": "Username",
"admin.users.modal.create.email": "Email", "admin.users.modal.create.email": "Email",
"admin.users.modal.create.password": "Password", "admin.users.modal.create.password": "Password",
"admin.users.modal.create.manual-password": "Set password manually", "admin.users.modal.create.manual-password": "Set password manually",
"admin.users.modal.create.manual-password.description": "admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.",
"If not checked, the user will receive an email with a link to set their password.",
"admin.users.modal.create.admin": "Admin privileges", "admin.users.modal.create.admin": "Admin privileges",
"admin.users.modal.create.admin.description": "admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.",
"If checked, the user will be able to access the admin panel.",
// END /admin/users // END /admin/users
// /admin/shares // /admin/shares
"admin.shares.title": "Share management", "admin.shares.title": "Share management",
"admin.shares.table.id": "Share ID", "admin.shares.table.id": "Share ID",
"admin.shares.table.username": "Creator", "admin.shares.table.username": "Creator",
"admin.shares.table.visitors": "Visitors", "admin.shares.table.visitors": "Visitors",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "Expires on",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "Delete share: {id}",
"admin.shares.edit.delete.description": "admin.shares.edit.delete.description": "Do you really want to delete this share?",
"Do you really want to delete this share?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Upload", "upload.title": "Upload",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "upload.notify.generic-error": "An error occurred while finishing your share.",
"An error occurred while finishing your share.",
"upload.notify.count-failed": "{count} files failed to upload. Trying again.", "upload.notify.count-failed": "{count} files failed to upload. Trying again.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Upload files", "upload.dropzone.title": "Upload files",
"upload.dropzone.description": "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
"Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.",
"upload.dropzone.notify.file-too-big":
"Your files exceed the maximum share size of {maxSize}.",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "Name", "upload.filelist.name": "Name",
"upload.filelist.size": "Size", "upload.filelist.size": "Size",
// showCreateUploadModal.tsx // showCreateUploadModal.tsx
"upload.modal.title": "Create Share", "upload.modal.title": "Create Share",
"upload.modal.link.error.invalid": "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens",
"Can only contain letters, numbers, underscores, and hyphens",
"upload.modal.link.error.taken": "This link is already in use", "upload.modal.link.error.taken": "This link is already in use",
"upload.modal.not-signed-in": "You're not signed in", "upload.modal.not-signed-in": "You're not signed in",
"upload.modal.not-signed-in-description": "upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.",
"You will be unable to delete your share manually and view the visitor count.",
"upload.modal.expires.never": "never", "upload.modal.expires.never": "never",
"upload.modal.expires.never-long": "Permanent share", "upload.modal.expires.never-long": "Permanent share",
"upload.modal.expires.error.too-long": "upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.",
"Expiration date exceeds the maximum of {max}.",
"upload.modal.link.label": "Link", "upload.modal.link.label": "Link",
"upload.modal.expires.label": "Expiration", "upload.modal.expires.label": "Expiration",
"upload.modal.expires.minute-singular": "Minute", "upload.modal.expires.minute-singular": "Minute",
@@ -329,74 +247,51 @@ export default {
"upload.modal.expires.month-plural": "Months", "upload.modal.expires.month-plural": "Months",
"upload.modal.expires.year-singular": "Year", "upload.modal.expires.year-singular": "Year",
"upload.modal.expires.year-plural": "Years", "upload.modal.expires.year-plural": "Years",
"upload.modal.accordion.name-and-description.title": "Name and description", "upload.modal.accordion.name-and-description.title": "Name and description",
"upload.modal.accordion.name-and-description.name.placeholder": "Name", "upload.modal.accordion.name-and-description.name.placeholder": "Name",
"upload.modal.accordion.name-and-description.description.placeholder": "upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share",
"Note for the recipients of this share",
"upload.modal.accordion.email.title": "Email recipients", "upload.modal.accordion.email.title": "Email recipients",
"upload.modal.accordion.email.placeholder": "Enter email recipients", "upload.modal.accordion.email.placeholder": "Enter email recipients",
"upload.modal.accordion.email.invalid-email": "Invalid email address", "upload.modal.accordion.email.invalid-email": "Invalid email address",
"upload.modal.accordion.security.title": "Security options", "upload.modal.accordion.security.title": "Security options",
"upload.modal.accordion.security.password.label": "Password protection", "upload.modal.accordion.security.password.label": "Password protection",
"upload.modal.accordion.security.password.placeholder": "No password", "upload.modal.accordion.security.password.placeholder": "No password",
"upload.modal.accordion.security.max-views.label": "Maximum views", "upload.modal.accordion.security.max-views.label": "Maximum views",
"upload.modal.accordion.security.max-views.placeholder": "No limit", "upload.modal.accordion.security.max-views.placeholder": "No limit",
// showCompletedUploadModal.tsx // showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "This share will never expire.", "upload.modal.completed.never-expires": "This share will never expire.",
"upload.modal.completed.expires-on": "upload.modal.completed.expires-on": "This share will expire on {expiration}.",
"This share will expire on {expiration}.",
"upload.modal.completed.share-ready": "Share ready", "upload.modal.completed.share-ready": "Share ready",
"upload.modal.completed.notified-reverse-share-creator": "upload.modal.completed.notified-reverse-share-creator": "We have notified the creator of the reverse share. You can also manually share this link with them through other means.",
"We have notified the creator of the reverse share. You can also manually share this link with them through other means.",
// END /upload // END /upload
// /share/[id] // /share/[id]
"share.title": "Share {shareId}", "share.title": "Share {shareId}",
"share.description": "Look what I've shared with you!", "share.description": "Look what I've shared with you!",
"share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded",
"share.error.visitor-limit-exceeded.description": "share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.",
"The visitor limit from this share has been exceeded.",
"share.error.removed.title": "Share removed", "share.error.removed.title": "Share removed",
"share.error.not-found.title": "Share not found", "share.error.not-found.title": "Share not found",
"share.error.not-found.description": "share.error.not-found.description": "The share you're looking for doesn't exist.",
"The share you're looking for doesn't exist.",
"share.error.access-denied.title": "Private share", "share.error.access-denied.title": "Private share",
"share.error.access-denied.description": "share.error.access-denied.description": "The current account does not have permission to access this share",
"The current account does not have permission to access this share",
"share.modal.password.title": "Password required", "share.modal.password.title": "Password required",
"share.modal.password.description": "share.modal.password.description": "Please enter the password to acces this share.",
"Please enter the password to acces this share.",
"share.modal.password": "Password", "share.modal.password": "Password",
"share.modal.error.invalid-password": "Invalid password", "share.modal.error.invalid-password": "Invalid password",
"share.button.download-all": "Download all", "share.button.download-all": "Download all",
"share.notify.download-all-preparing": "share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.",
"The share is being prepared. Please try again in a few minutes.",
"share.modal.file-link": "File link", "share.modal.file-link": "File link",
"share.table.name": "Name", "share.table.name": "Name",
"share.table.size": "Size", "share.table.size": "Size",
"share.modal.file-preview.error.not-supported.title": "Preview not supported", "share.modal.file-preview.error.not-supported.title": "Preview not supported",
"share.modal.file-preview.error.not-supported.description": "share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.",
"Previews are not supported for this type of files. Please download the file to view it.",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "Edit {shareId}", "share.edit.title": "Edit {shareId}",
"share.edit.append-upload": "Append file", "share.edit.append-upload": "Append file",
"share.edit.notify.generic-error": "share.edit.notify.generic-error": "An error occurred while finishing your share.",
"An error occurred while finishing your share.",
"share.edit.notify.save-success": "Share updated successfully", "share.edit.notify.save-success": "Share updated successfully",
// END /share/[id]/edit // END /share/[id]/edit
// /admin/config // /admin/config
"admin.config.title": "Configuration", "admin.config.title": "Configuration",
"admin.config.category.general": "General", "admin.config.category.general": "General",
@@ -404,241 +299,162 @@ export default {
"admin.config.category.email": "Email", "admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login", "admin.config.category.oauth": "Social Login",
"admin.config.general.app-name": "App name", "admin.config.general.app-name": "App name",
"admin.config.general.app-name.description": "Name of the application", "admin.config.general.app-name.description": "Name of the application",
"admin.config.general.app-url": "App URL", "admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "admin.config.general.app-url.description": "On which URL Pingvin Share is available",
"On which URL Pingvin Share is available", "admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Show home page", "admin.config.general.show-home-page": "Show home page",
"admin.config.general.show-home-page.description": "admin.config.general.show-home-page.description": "Whether to show the home page",
"Whether to show the home page",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",
"admin.config.general.session-duration.description": "admin.config.general.session-duration.description": "Time in hours after which a user must log in again (default: 3 months).",
"Time in hours after which a user must log in again (default: 3 months).",
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "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.",
"Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.",
"admin.config.general.logo.placeholder": "Pick image", "admin.config.general.logo.placeholder": "Pick image",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients": "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description":
"Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Share recipients subject", "admin.config.email.share-recipients-subject": "Share recipients subject",
"admin.config.email.share-recipients-subject.description": "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
"Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message", "admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-message.description": "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
"Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
"admin.config.email.reverse-share-subject": "Reverse share subject", "admin.config.email.reverse-share-subject": "Reverse share subject",
"admin.config.email.reverse-share-subject.description": "admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
"Subject of the sent email when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "Reverse share message", "admin.config.email.reverse-share-message": "Reverse share message",
"admin.config.email.reverse-share-message.description": "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.",
"Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.",
"admin.config.email.reset-password-subject": "Reset password subject", "admin.config.email.reset-password-subject": "Reset password subject",
"admin.config.email.reset-password-subject.description": "admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.",
"Subject of the sent email when a user requests a password reset.",
"admin.config.email.reset-password-message": "Reset password message", "admin.config.email.reset-password-message": "Reset password message",
"admin.config.email.reset-password-message.description": "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.",
"Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.",
"admin.config.email.invite-subject": "Invite subject", "admin.config.email.invite-subject": "Invite subject",
"admin.config.email.invite-subject.description": "admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.",
"Subject of the sent email when an admin invites a user.",
"admin.config.email.invite-message": "Invite message", "admin.config.email.invite-message": "Invite message",
"admin.config.email.invite-message.description": "admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.",
"Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.",
"admin.config.share.allow-registration": "Allow registration", "admin.config.share.allow-registration": "Allow registration",
"admin.config.share.allow-registration.description": "admin.config.share.allow-registration.description": "Whether registration is allowed",
"Whether registration is allowed", "admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares",
"admin.config.share.allow-unauthenticated-shares": "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares",
"Allow unauthenticated shares",
"admin.config.share.allow-unauthenticated-shares.description":
"Whether unauthenticated users can create shares",
"admin.config.share.max-expiration": "Max expiration", "admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.max-size": "Max size", "admin.config.share.max-size": "Max size",
"admin.config.share.max-size.description": "Maximum share size in bytes", "admin.config.share.max-size.description": "Maximum share size in bytes",
"admin.config.share.zip-compression-level": "Zip compression level", "admin.config.share.zip-compression-level": "Zip compression level",
"admin.config.share.zip-compression-level.description": "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. ",
"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": "Chunk size",
"admin.config.share.chunk-size.description": "admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.",
"Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.",
"admin.config.share.auto-open-share-modal": "Auto open create share modal", "admin.config.share.auto-open-share-modal": "Auto open create share modal",
"admin.config.share.auto-open-share-modal.description": "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.",
"The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "Enable",
"admin.config.smtp.enabled.description": "admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.",
"Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.",
"admin.config.smtp.host": "Host", "admin.config.smtp.host": "Host",
"admin.config.smtp.host.description": "Host of the SMTP server", "admin.config.smtp.host.description": "Host of the SMTP server",
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Port of the SMTP server", "admin.config.smtp.port.description": "Port of the SMTP server",
"admin.config.smtp.email": "Email", "admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "admin.config.smtp.email.description": "Email address from wich the emails get sent",
"Email address from wich the emails get sent",
"admin.config.smtp.username": "Username", "admin.config.smtp.username": "Username",
"admin.config.smtp.username.description": "Username of the SMTP server", "admin.config.smtp.username.description": "Username of the SMTP server",
"admin.config.smtp.password": "Password", "admin.config.smtp.password": "Password",
"admin.config.smtp.password.description": "Password of the SMTP server", "admin.config.smtp.password.description": "Password of the SMTP server",
"admin.config.smtp.button.test": "Send test email", "admin.config.smtp.button.test": "Send test email",
"admin.config.smtp.allow-unauthorized-certificates": "admin.config.smtp.allow-unauthorized-certificates": "Trust unauthorized SMTP server certificates",
"Trust unauthorized SMTP server certificates", "admin.config.smtp.allow-unauthorized-certificates.description": "Only set this to true if you need to trust self signed certificates.",
"admin.config.smtp.allow-unauthorized-certificates.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": "Allow registration",
"admin.config.oauth.allow-registration.description": "admin.config.oauth.allow-registration.description": "Allow users to register via social login",
"Allow users to register via social login",
"admin.config.oauth.ignore-totp": "Ignore TOTP", "admin.config.oauth.ignore-totp": "Ignore TOTP",
"admin.config.oauth.ignore-totp.description": "admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
"Whether to ignore TOTP when user using social login",
"admin.config.oauth.disable-password": "Disable password login", "admin.config.oauth.disable-password": "Disable password login",
"admin.config.oauth.disable-password.description": "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.",
"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": "GitHub",
"admin.config.oauth.github-enabled.description": "admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
"Whether GitHub login is enabled",
"admin.config.oauth.github-client-id": "GitHub Client ID", "admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
"Client ID of the GitHub OAuth app",
"admin.config.oauth.github-client-secret": "GitHub Client secret", "admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
"Client secret of the GitHub OAuth app",
"admin.config.oauth.google-enabled": "Google", "admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
"Whether Google login is enabled",
"admin.config.oauth.google-client-id": "Google Client ID", "admin.config.oauth.google-client-id": "Google Client ID",
"admin.config.oauth.google-client-id.description": "admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
"Client ID of the Google OAuth app",
"admin.config.oauth.google-client-secret": "Google Client secret", "admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app",
"Client secret of the Google OAuth app",
"admin.config.oauth.microsoft-enabled": "Microsoft", "admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
"Whether Microsoft login is enabled",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant", "admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
"Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID", "admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
"Client ID of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret", "admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"Client secret of the Microsoft OAuth app",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"Whether Discord login is enabled",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Discord limited users",
"admin.config.oauth.discord-limited-users.description": "admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.",
"Limit signing in to specific users by their Discord ID. Leave it blank to disable.",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID", "admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord Client ID", "admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret", "admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID Connect", "admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI", "admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from OpenID Connect", "admin.config.oauth.oidc-sign-out": "Sign out from OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "admin.config.oauth.oidc-sign-out.description": "Whether the “Sign out” button will sign out from the OpenID Connect provider",
"Whether the “Sign out” button will sign out from the OpenID Connect provider",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim", "admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token", "admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
"admin.config.oauth.oidc-role-path.description": "admin.config.oauth.oidc-role-path.description": "Must be a valid JMES path referencing an array of roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Leave it blank if you don't know what this config is.",
"Must be a valid JMES path referencing an array of roles. " + "admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access",
"Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a users roles for them to log in. " + "Leave it blank if you don't know what this config is.",
"Leave it blank if you don't know what this config is.", "admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
"admin.config.oauth.oidc-role-general-access": "admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a users roles for them to access the admin panel. " + "Leave it blank if you don't know what this config is.",
"OpenID Connect role for general access",
"admin.config.oauth.oidc-role-general-access.description":
"Role required for general access. Must be present in a users roles for them to log in. " +
"Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-admin-access":
"OpenID Connect role for admin access",
"admin.config.oauth.oidc-role-admin-access.description":
"Role required for administrative access. Must be present in a users roles for them to access the admin panel. " +
"Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID", "admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret", "admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
"Client secret of the OpenID Connect OAuth app",
"admin.config.category.ldap": "LDAP", "admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP", "admin.config.ldap.enabled": "Enable LDAP",
"admin.config.ldap.enabled.description": "admin.config.ldap.enabled.description": "Use LDAP authentication for user login",
"Use LDAP authentication for user login",
"admin.config.ldap.url": "Server URL", "admin.config.ldap.url": "Server URL",
"admin.config.ldap.url.description": "URL of the LDAP server", "admin.config.ldap.url.description": "URL of the LDAP server",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Bind DN",
"admin.config.ldap.bind-dn.description": "admin.config.ldap.bind-dn.description": "Default user used to perform the user search",
"Default user used to perform the user search",
"admin.config.ldap.bind-password": "Bind password", "admin.config.ldap.bind-password": "Bind password",
"admin.config.ldap.bind-password.description": "admin.config.ldap.bind-password.description": "Password used to perform the user search",
"Password used to perform the user search",
"admin.config.ldap.search-base": "User base", "admin.config.ldap.search-base": "User base",
"admin.config.ldap.search-base.description": "admin.config.ldap.search-base.description": "Base location, where the user search will be performed",
"Base location, where the user search will be performed",
"admin.config.ldap.search-query": "User query", "admin.config.ldap.search-query": "User query",
"admin.config.ldap.search-query.description": "admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.",
"The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.",
"admin.config.ldap.admin-groups": "Admin group", "admin.config.ldap.admin-groups": "Admin group",
"admin.config.ldap.admin-groups.description": "admin.config.ldap.admin-groups.description": "Group required for administrative access.",
"Group required for administrative access.",
"admin.config.ldap.field-name-member-of": "User groups attribute name", "admin.config.ldap.field-name-member-of": "User groups attribute name",
"admin.config.ldap.field-name-member-of.description": "admin.config.ldap.field-name-member-of.description": "LDAP attribute name for the groups, an user is a member of. This is used when checking for the admin group.",
"LDAP attribute name for the groups, an user is a member of. This is used when checking for the admin group.",
"admin.config.ldap.field-name-email": "User email attribute name", "admin.config.ldap.field-name-email": "User email attribute name",
"admin.config.ldap.field-name-email.description": "admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.",
"LDAP attribute name for the email of an user.",
// 404 // 404
"404.description": "Oops this page doesn't exist.", "404.description": "Oops this page doesn't exist.",
"404.button.home": "Bring me back home", "404.button.home": "Bring me back home",
// error // error
"error.title": "Error", "error.title": "Error",
"error.description": "Oops!", "error.description": "Oops!",
"error.button.back": "Go back", "error.button.back": "Go back",
"error.msg.default": "Something went wrong.", "error.msg.default": "Something went wrong.",
"error.msg.access_denied": "error.msg.access_denied": "You canceled the authentication process, please try again.",
"You canceled the authentication process, please try again.", "error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.expired_token":
"The authentication process took too long, please try again.",
"error.msg.invalid_token": "Internal Error", "error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "User linked to this {0} account doesn't exist.", "error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.", "error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "error.msg.already_linked": "This {0} account is already linked to another account.",
"This {0} account is already linked to another account.", "error.msg.not_linked": "This {0} account hasn't been linked to any account yet.",
"error.msg.not_linked": "error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"This {0} account hasn't been linked to any account yet.",
"error.msg.unverified_account":
"This {0} account is unverified, please try again after verification.",
"error.msg.user_not_allowed": "You are not allowed to sign in.", "error.msg.user_not_allowed": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.",
"Cannot get your user info from this {0} account.",
"error.param.provider_github": "GitHub", "error.param.provider_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord", "error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID Connect", "error.param.provider_oidc": "OpenID Connect",
// Common translations // Common translations
"common.button.save": "Save", "common.button.save": "Save",
"common.button.create": "Create", "common.button.create": "Create",
@@ -658,7 +474,6 @@ export default {
"common.button.go-home": "Go home", "common.button.go-home": "Go home",
"common.notify.copied": "Your link was copied to the clipboard", "common.notify.copied": "Your link was copied to the clipboard",
"common.success": "Success", "common.success": "Success",
"common.error": "Error", "common.error": "Error",
"common.error.unknown": "An unknown error occurred", "common.error.unknown": "An unknown error occurred",
"common.error.invalid-email": "Invalid email address", "common.error.invalid-email": "Invalid email address",
@@ -668,5 +483,5 @@ export default {
"common.error.number-too-large": "Must be at most {max}", "common.error.number-too-large": "Must be at most {max}",
"common.error.exact-length": "Must be exactly {length} characters", "common.error.exact-length": "Must be exactly {length} characters",
"common.error.invalid-number": "Must be a number", "common.error.invalid-number": "Must be a number",
"common.error.field-required": "This field is required", "common.error.field-required": "This field is required"
}; };

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Пошаљи", "navbar.upload": "Пошаљи",
"navbar.signin": "Пријавите се", "navbar.signin": "Пријавите се",
"navbar.home": "Почетна", "navbar.home": "Почетна",
"navbar.signup": "Sign up", "navbar.signup": "Региструј се",
"navbar.links.shares": "Moja дељења", "navbar.links.shares": "Moja дељења",
"navbar.links.reverse": "Обрнуто дељење", "navbar.links.reverse": "Обрнуто дељење",
"navbar.avatar.account": "Мој налог", "navbar.avatar.account": "Мој налог",
@@ -11,14 +11,14 @@ export default {
"navbar.avatar.signout": "Одјави се", "navbar.avatar.signout": "Одјави се",
// END navbar // END navbar
// / // /
"home.title": "<h>self-hosted</h> платформа за дељење фајлова.", "home.title": "<h>Само-хостована</h> платформа за дељење фајлова.",
"home.description": "Да ли заиста желите да дате своје личне датотеке у руке трећих страна као што је WeTransfer?", "home.description": "Да ли заиста желите да дате своје личне фајлове у руке трећих страна као што је WeTransfer?",
"home.bullet.a.name": "Личан хостинг", "home.bullet.a.name": "Личан хостинг",
"home.bullet.a.description": "Хостујте Pingvin Share на својој машини.", "home.bullet.a.description": "Хостујте Pingvin Share на својој машини.",
"home.bullet.b.name": "Privatnost", "home.bullet.b.name": "Privatnost",
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.", "home.bullet.b.description": "Ваши фајлови су ваши и никада неће бити доступни трећим странама.",
"home.bullet.c.name": "Нема досадног ограничења величине датотеке", "home.bullet.c.name": "Нема досадног ограничења величине датотеке",
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.", "home.bullet.c.description": "Отпремите онолико великих датотека колико желите. Само ваш чврсти диск је ваша граница.",
"home.button.start": "Почети", "home.button.start": "Почети",
"home.button.source": "Изворни код", "home.button.source": "Изворни код",
// END / // END /
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Заборавили сте лозинку?", "resetPassword.title": "Заборавили сте лозинку?",
"resetPassword.description": "Унесите своју е-пошту да бисте ресетовали лозинку.", "resetPassword.description": "Унесите своју е-пошту да бисте ресетовали лозинку.",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "Порука са линком за ресетовање лозинке је послата ако унета имејл адреса постоји.",
"resetPassword.button.back": "Назад на страницу за пријаву", "resetPassword.button.back": "Назад на страницу за пријаву",
"resetPassword.text.resetPassword": "Обнови лозинку", "resetPassword.text.resetPassword": "Обнови лозинку",
"resetPassword.text.enterNewPassword": "Унесите вашу нову лозинку", "resetPassword.text.enterNewPassword": "Унесите вашу нову лозинку",
"resetPassword.input.password": "Нова лозинка", "resetPassword.input.password": "Нова лозинка",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.", "resetPassword.notify.passwordReset": "Ваша лозинка је успешно ресетована.",
// /account // /account
"account.title": "Мој налог", "account.title": "Мој налог",
"account.card.info.title": "Подаци о налогу", "account.card.info.title": "Подаци о налогу",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "Лозинка", "account.card.password.title": "Лозинка",
"account.card.password.old": "Стара лозинка", "account.card.password.old": "Стара лозинка",
"account.card.password.new": "Нова лозинка", "account.card.password.new": "Нова лозинка",
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.", "account.card.password.noPasswordSet": "Немате постављену лозинку. Да бисте се пријавили користећи имејл и лозинку, потребно је да направите лозинку.",
"account.notify.password.success": "Лозинка је успешно промењена", "account.notify.password.success": "Лозинка је успешно промењена",
"account.card.oauth.title": "Социал логин", "account.card.oauth.title": "Социал логин",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "Прекини везу", "account.card.oauth.unlink": "Прекини везу",
"account.card.oauth.unlinked": "Веза је прекинута", "account.card.oauth.unlinked": "Веза је прекинута",
"account.modal.unlink.title": "Прекини везу са налогом", "account.modal.unlink.title": "Прекини везу са налогом",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials", "account.modal.unlink.description": "Уклањање везе са вашим друштвеним налозима може довести до губитка вашег налога ако се не сећате својих приступних података",
"account.notify.oauth.unlinked.success": "Веза је прекинута", "account.notify.oauth.unlinked.success": "Веза је прекинута",
"account.card.security.title": "Безбедност", "account.card.security.title": "Безбедност",
"account.card.security.totp.enable.description": "Унесите своју тренутну лозинку да бисте почели да омогућавате ТОТП", "account.card.security.totp.enable.description": "Унесите своју тренутну лозинку да бисте почели да омогућавате ТОТП",
@@ -121,12 +121,12 @@ export default {
"account.shares.table.name": "Назив", "account.shares.table.name": "Назив",
"account.shares.table.description": "Опис", "account.shares.table.description": "Опис",
"account.shares.table.visitors": "Посетици", "account.shares.table.visitors": "Посетици",
"account.shares.table.expiresAt": "Expires on", "account.shares.table.expiresAt": "Истиче",
"account.shares.table.createdAt": "Created on", "account.shares.table.createdAt": "Направљено",
"account.shares.table.size": "Величина", "account.shares.table.size": "Величина",
"account.shares.modal.share-informations": "Делите информације", "account.shares.modal.share-informations": "Делите информације",
"account.shares.modal.share-link": "Дели везу", "account.shares.modal.share-link": "Дели везу",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "Избриши дељење {share}",
"account.shares.modal.delete.description": "Да ли заиста желите да избришете ово дељење?", "account.shares.modal.delete.description": "Да ли заиста желите да избришете ово дељење?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
@@ -150,12 +150,12 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "Година", "account.reverseShares.modal.expiration.year-singular": "Година",
"account.reverseShares.modal.expiration.year-plural": "Године", "account.reverseShares.modal.expiration.year-plural": "Године",
"account.reverseShares.modal.max-size.label": "Максимална величина дељења", "account.reverseShares.modal.max-size.label": "Максимална величина дељења",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "Пошаљи обавештења е-поштом",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.send-email.description": "Пошаљи обавештење е-поштом када се креира дељење помоћу ове обрнуте везе за дељење.",
"account.reverseShares.modal.simplified": "Једноставан режим", "account.reverseShares.modal.simplified": "Једноставан режим",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "Олакшајте особи која отпрема фајл да га подели са вама. Они ће моћи да прилагоде само име и опис дељења.",
"account.reverseShares.modal.public-access": "Јавни приступ", "account.reverseShares.modal.public-access": "Јавни приступ",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "Учини да дељења креирана овим реверзним линком за дељење буду јавна. Ако је онемогућено, само ви и креатор дељења ћете имати приступ за преглед.",
"account.reverseShares.modal.max-use.label": "Максималан број коришћења", "account.reverseShares.modal.max-use.label": "Максималан број коришћења",
"account.reverseShares.modal.max-use.description": "Максималан број пута који овај URL може да се користи за прављење дељења.", "account.reverseShares.modal.max-use.description": "Максималан број пута који овај URL може да се користи за прављење дељења.",
"account.reverseShare.never-expires": "Ово обрнуто дељење никада неће истећи.", "account.reverseShare.never-expires": "Ово обрнуто дељење никада неће истећи.",
@@ -183,14 +183,14 @@ export default {
"admin.users.table.username": "Корисничко име", "admin.users.table.username": "Корисничко име",
"admin.users.table.email": "E-пошта", "admin.users.table.email": "E-пошта",
"admin.users.table.admin": "Админ", "admin.users.table.admin": "Админ",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "Уредите корисника: {username}",
"admin.users.edit.update.admin-privileges": "Администраторске привилегије", "admin.users.edit.update.admin-privileges": "Администраторске привилегије",
"admin.users.edit.update.change-password.title": "Промените лозинку", "admin.users.edit.update.change-password.title": "Промените лозинку",
"admin.users.edit.update.change-password.field": "Нова лозинка", "admin.users.edit.update.change-password.field": "Нова лозинка",
"admin.users.edit.update.change-password.button": "Снимите нову лозинку", "admin.users.edit.update.change-password.button": "Снимите нову лозинку",
"admin.users.edit.update.notify.password.success": "Лозинка је успешно промењена", "admin.users.edit.update.notify.password.success": "Лозинка је успешно промењена",
"admin.users.edit.delete.title": "Delete user: {username} ?", "admin.users.edit.delete.title": "Обришите корисника: {username} ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "Да ли заиста желите да обришете овог корисника и сва његова дељења?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Креирај корисника", "admin.users.modal.create.title": "Креирај корисника",
"admin.users.modal.create.username": "Корисничко име", "admin.users.modal.create.username": "Корисничко име",
@@ -202,21 +202,24 @@ export default {
"admin.users.modal.create.admin.description": "Ако је означено, корисник ће моћи да приступи административном панелу.", "admin.users.modal.create.admin.description": "Ако је означено, корисник ће моћи да приступи административном панелу.",
// END /admin/users // END /admin/users
// /admin/shares // /admin/shares
"admin.shares.title": "Share management", "admin.shares.title": "Управљање дељењем",
"admin.shares.table.id": "Share ID", "admin.shares.table.id": "ID дељења",
"admin.shares.table.username": "Creator", "admin.shares.table.username": "Креатор",
"admin.shares.table.visitors": "Visitors", "admin.shares.table.visitors": "Посетиоци",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "Истиче",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "Обриши дељење: {id}",
"admin.shares.edit.delete.description": "Do you really want to delete this share?", "admin.shares.edit.delete.description": "Да ли заиста желите да обришете ово дељење?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Пошаљи", "upload.title": "Пошаљи",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Дошло је до грешке при довршавању дељења.", "upload.notify.generic-error": "Дошло је до грешке при довршавању дељења.",
"upload.notify.count-failed": "Отпремање {count} датотека није успело. Покушавам поново.", "upload.notify.count-failed": "Отпремање {count} датотека није успело. Покушавам поново.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Пошаљи датотеке", "upload.dropzone.title": "Пошаљи датотеке",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Превуците и отпустите фајлове овде да бисте започели дељење. Прихватамо само фајлове укупне величине до {maxSize}.",
"upload.dropzone.notify.file-too-big": "Ваше датотеке премашују максималну величину дељења од {maxSize}.", "upload.dropzone.notify.file-too-big": "Ваше датотеке премашују максималну величину дељења од {maxSize}.",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "Назив", "upload.filelist.name": "Назив",
@@ -228,8 +231,8 @@ export default {
"upload.modal.not-signed-in": "Нисте пријављени", "upload.modal.not-signed-in": "Нисте пријављени",
"upload.modal.not-signed-in-description": "Нећете моћи ручно да избришете своје дељење и видите број посетилаца.", "upload.modal.not-signed-in-description": "Нећете моћи ручно да избришете своје дељење и видите број посетилаца.",
"upload.modal.expires.never": "никад", "upload.modal.expires.never": "никад",
"upload.modal.expires.never-long": "Permanent share", "upload.modal.expires.never-long": "Трајно дељење",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.", "upload.modal.expires.error.too-long": "Датум истека превазилази максималну вредност од {max}.",
"upload.modal.link.label": "Линк", "upload.modal.link.label": "Линк",
"upload.modal.expires.label": "Истиче", "upload.modal.expires.label": "Истиче",
"upload.modal.expires.minute-singular": "Минут", "upload.modal.expires.minute-singular": "Минут",
@@ -244,9 +247,9 @@ export default {
"upload.modal.expires.month-plural": "Месеци", "upload.modal.expires.month-plural": "Месеци",
"upload.modal.expires.year-singular": "Година", "upload.modal.expires.year-singular": "Година",
"upload.modal.expires.year-plural": "Године", "upload.modal.expires.year-plural": "Године",
"upload.modal.accordion.name-and-description.title": "Name and description", "upload.modal.accordion.name-and-description.title": "Име и опис",
"upload.modal.accordion.name-and-description.name.placeholder": "Name", "upload.modal.accordion.name-and-description.name.placeholder": "Име",
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share", "upload.modal.accordion.name-and-description.description.placeholder": "Напомена за примаоце овог дељења",
"upload.modal.accordion.email.title": "Примаоци е-поште", "upload.modal.accordion.email.title": "Примаоци е-поште",
"upload.modal.accordion.email.placeholder": "Унесите примаоце е-поште", "upload.modal.accordion.email.placeholder": "Унесите примаоце е-поште",
"upload.modal.accordion.email.invalid-email": "Неисправна адреса е-поште", "upload.modal.accordion.email.invalid-email": "Неисправна адреса е-поште",
@@ -259,7 +262,7 @@ export default {
"upload.modal.completed.never-expires": "Ово дељење никада неће истећи.", "upload.modal.completed.never-expires": "Ово дељење никада неће истећи.",
"upload.modal.completed.expires-on": "Ово дељење ће истећи {expiration}.", "upload.modal.completed.expires-on": "Ово дељење ће истећи {expiration}.",
"upload.modal.completed.share-ready": "Дељење је спремно", "upload.modal.completed.share-ready": "Дељење је спремно",
"upload.modal.completed.notified-reverse-share-creator": "We have notified the creator of the reverse share. You can also manually share this link with them through other means.", "upload.modal.completed.notified-reverse-share-creator": "Обавестили смо креатора реверзног дељења. Такође можете ручно поделити овај линк са њима на друге начине.",
// END /upload // END /upload
// /share/[id] // /share/[id]
"share.title": "Дељење {shareId}", "share.title": "Дељење {shareId}",
@@ -269,25 +272,25 @@ export default {
"share.error.removed.title": "Дељење је уклоњено", "share.error.removed.title": "Дељење је уклоњено",
"share.error.not-found.title": "Дељење није пронађено", "share.error.not-found.title": "Дељење није пронађено",
"share.error.not-found.description": "Удео који тражите не постоји.", "share.error.not-found.description": "Удео који тражите не постоји.",
"share.error.access-denied.title": "Private share", "share.error.access-denied.title": "Приватно дељење",
"share.error.access-denied.description": "The current account does not have permission to access this share", "share.error.access-denied.description": "Тренутни налог нема дозволу за приступ овом дељењу",
"share.modal.password.title": "Обавезна лозинка", "share.modal.password.title": "Обавезна лозинка",
"share.modal.password.description": "Please enter the password to acces this share.", "share.modal.password.description": "Молимо унесите лозинку за приступ овом дељењу.",
"share.modal.password": "Лозинка", "share.modal.password": "Лозинка",
"share.modal.error.invalid-password": "Неисправна лозинка", "share.modal.error.invalid-password": "Неисправна лозинка",
"share.button.download-all": "Преузми све", "share.button.download-all": "Преузми све",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.", "share.notify.download-all-preparing": "Дељење се припрема. Молимо покушајте поново за неколико минута.",
"share.modal.file-link": "Веза датотеке", "share.modal.file-link": "Веза датотеке",
"share.table.name": "Назив", "share.table.name": "Назив",
"share.table.size": "Величина", "share.table.size": "Величина",
"share.modal.file-preview.error.not-supported.title": "Преглед није подржан", "share.modal.file-preview.error.not-supported.title": "Преглед није подржан",
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.", "share.modal.file-preview.error.not-supported.description": "Прегледи нису подржани за овај тип фајлова. Молимо преузмите фајл да бисте га прегледали.",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "Edit {shareId}", "share.edit.title": "Уреди {shareId}",
"share.edit.append-upload": "Append file", "share.edit.append-upload": "Надодај фајл",
"share.edit.notify.generic-error": "An error occurred while finishing your share.", "share.edit.notify.generic-error": "Дошло је до грешке приликом завршетка вашег дељења.",
"share.edit.notify.save-success": "Share updated successfully", "share.edit.notify.save-success": "Дељење је успешно ажурирано",
// END /share/[id]/edit // END /share/[id]/edit
// /admin/config // /admin/config
"admin.config.title": "Конфигурација", "admin.config.title": "Конфигурација",
@@ -300,31 +303,33 @@ export default {
"admin.config.general.app-name.description": "Назив апликације", "admin.config.general.app-name.description": "Назив апликације",
"admin.config.general.app-url": "URL апликације", "admin.config.general.app-url": "URL апликације",
"admin.config.general.app-url.description": "На којој URL адреси је доступан Pingvin Share", "admin.config.general.app-url.description": "На којој URL адреси је доступан Pingvin Share",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Прикажи почетну страницу", "admin.config.general.show-home-page": "Прикажи почетну страницу",
"admin.config.general.show-home-page.description": "Да ли да се прикаже почетна страница", "admin.config.general.show-home-page.description": "Да ли да се прикаже почетна страница",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Трајање сесије",
"admin.config.general.session-duration.description": "Time in hours after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "Време у сатима након којег корисник мора поново да се пријави (подразумевано: 3 месеца).",
"admin.config.general.logo": "Лого", "admin.config.general.logo": "Лого",
"admin.config.general.logo.description": "Промените свој логотип тако што ћете отпремити нову слику. Слика мора да буде PNG и треба да има формат 1:1.", "admin.config.general.logo.description": "Промените свој логотип тако што ћете отпремити нову слику. Слика мора да буде PNG и треба да има формат 1:1.",
"admin.config.general.logo.placeholder": "Изабери слику", "admin.config.general.logo.placeholder": "Изабери слику",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Омогући дељење са примаоцима е-поштом",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Да ли дозволити дељење са примаоцима путем е-поште. Омогућите ово само ако је SMTP активиран.",
"admin.config.email.share-recipients-subject": "Поделите наслов примаоца", "admin.config.email.share-recipients-subject": "Поделите наслов примаоца",
"admin.config.email.share-recipients-subject.description": "Тема е-поруке која се шаље примаоцима дељења.", "admin.config.email.share-recipients-subject.description": "Тема е-поруке која се шаље примаоцима дељења.",
"admin.config.email.share-recipients-message": "Делите поруку примаоца", "admin.config.email.share-recipients-message": "Делите поруку примаоца",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.", "admin.config.email.share-recipients-message.description": "Порука која се шаље примаоцима дељења. Доступне променљиве:\n{creator} - Корисничко име креатора дељења\n{shareUrl} - URL дељења\n{desc} - Опис дељења\n{expires} - Датум истека дељења\nОве променљиве ће бити замењене стварним вредностима.",
"admin.config.email.reverse-share-subject": "Тема обрнутог дељења", "admin.config.email.reverse-share-subject": "Тема обрнутог дељења",
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.", "admin.config.email.reverse-share-subject.description": "Наслов е-поште која се шаље када неко креира дељење са вашим реверзним линком за дељење.",
"admin.config.email.reverse-share-message": "Обрнуто дељење порука", "admin.config.email.reverse-share-message": "Обрнуто дељење порука",
"admin.config.email.reverse-share-message.description": "Порука која се шаље када је неко направио дељење са вашом обрнутом везом за дељење. {shareUrl} ће бити замењен именом креатора и УРЛ-ом за дељење.", "admin.config.email.reverse-share-message.description": "Порука која се шаље када је неко направио дељење са вашом обрнутом везом за дељење. {shareUrl} ће бити замењен именом креатора и УРЛ-ом за дељење.",
"admin.config.email.reset-password-subject": "Ресетујте тему лозинке", "admin.config.email.reset-password-subject": "Ресетујте тему лозинке",
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.", "admin.config.email.reset-password-subject.description": "Наслов е-поште која се шаље када корисник затражи ресетовање лозинке.",
"admin.config.email.reset-password-message": "Порука за ресетовање лозинке", "admin.config.email.reset-password-message": "Порука за ресетовање лозинке",
"admin.config.email.reset-password-message.description": "Порука која се шаље када корисник затражи ресетовање лозинке. {url} ће бити замењен УРЛ-ом за ресетовање лозинке.", "admin.config.email.reset-password-message.description": "Порука која се шаље када корисник затражи ресетовање лозинке. {url} ће бити замењен УРЛ-ом за ресетовање лозинке.",
"admin.config.email.invite-subject": "Позивна тема", "admin.config.email.invite-subject": "Позивна тема",
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.", "admin.config.email.invite-subject.description": "Наслов е-поште која се шаље када администратор позове корисника.",
"admin.config.email.invite-message": "Позивна порука", "admin.config.email.invite-message": "Позивна порука",
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.", "admin.config.email.invite-message.description": "Порука која се шаље када администратор позове корисника. {url} ће бити замењен линком за позив, {email} е-поштом, а {password} лозинком корисника.",
"admin.config.share.allow-registration": "Дозволи регистрацију", "admin.config.share.allow-registration": "Дозволи регистрацију",
"admin.config.share.allow-registration.description": "Да ли је регистрација дозвољена", "admin.config.share.allow-registration.description": "Да ли је регистрација дозвољена",
"admin.config.share.allow-unauthenticated-shares": "Дозволи дељење без аутентификације", "admin.config.share.allow-unauthenticated-shares": "Дозволи дељење без аутентификације",
@@ -335,11 +340,11 @@ export default {
"admin.config.share.max-size.description": "Максимална величина дељења у бајтовима", "admin.config.share.max-size.description": "Максимална величина дељења у бајтовима",
"admin.config.share.zip-compression-level": "Ниво zip компресије", "admin.config.share.zip-compression-level": "Ниво zip компресије",
"admin.config.share.zip-compression-level.description": "Подесите ниво да бисте балансирали између величине датотеке и брзине компресије. Важеће вредности се крећу од 0 до 9, при чему је 0 без компресије, а 9 је максимална компресија. ", "admin.config.share.zip-compression-level.description": "Подесите ниво да бисте балансирали између величине датотеке и брзине компресије. Важеће вредности се крећу од 0 до 9, при чему је 0 без компресије, а 9 је максимална компресија. ",
"admin.config.share.chunk-size": "Chunk size", "admin.config.share.chunk-size": "Величина комада",
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.", "admin.config.share.chunk-size.description": "Подесите величину дела (у бајтовима) за ваша отпремање како бисте уравнотежили ефикасност и поузданост у складу са вашом интернет везом. Мањи делови могу побољшати стопу успеха за нестабилне везе, док већи делови омогућавају брже отпремање за стабилне везе.",
"admin.config.share.auto-open-share-modal": "Auto open create share modal", "admin.config.share.auto-open-share-modal": "",
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.", "admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "Омогући",
"admin.config.smtp.enabled.description": "Да ли је SMTP омогућен. Поставите ово на тачно само ако сте унели хост, порт, е-пошту, корисника и лозинку вашег SMTP сервера.", "admin.config.smtp.enabled.description": "Да ли је SMTP омогућен. Поставите ово на тачно само ако сте унели хост, порт, е-пошту, корисника и лозинку вашег SMTP сервера.",
"admin.config.smtp.host": "Домаћин", "admin.config.smtp.host": "Домаћин",
"admin.config.smtp.host.description": "Домаћин SMTP сервера", "admin.config.smtp.host.description": "Домаћин SMTP сервера",
@@ -423,10 +428,10 @@ export default {
"admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.", "admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.",
"admin.config.ldap.admin-groups": "Admin group", "admin.config.ldap.admin-groups": "Admin group",
"admin.config.ldap.admin-groups.description": "Group required for administrative access.", "admin.config.ldap.admin-groups.description": "Group required for administrative access.",
"admin.config.ldap.field-name-member-of": "User groups attribute name", "admin.config.ldap.field-name-member-of": "Назив атрибута корисничких група",
"admin.config.ldap.field-name-member-of.description": "LDAP attribute name for the groups, an user is a member of. This is used when checking for the admin group.", "admin.config.ldap.field-name-member-of.description": "LDAP назив атрибута за групе чији је корисник члан. Ово се користи при провери администраторске групе.",
"admin.config.ldap.field-name-email": "User email attribute name", "admin.config.ldap.field-name-email": "Назив атрибута за е-пошту корисника",
"admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.", "admin.config.ldap.field-name-email.description": "LDAP назив атрибута за е-пошту корисника.",
// 404 // 404
"404.description": "Опа - Ова страна не постоји.", "404.description": "Опа - Ова страна не постоји.",
"404.button.home": "Врати ме на почетак", "404.button.home": "Врати ме на почетак",
@@ -437,14 +442,14 @@ export default {
"error.msg.default": "Нешто је пошло наопако.", "error.msg.default": "Нешто је пошло наопако.",
"error.msg.access_denied": "Отказали сте процес аутентификације, покушајте поново.", "error.msg.access_denied": "Отказали сте процес аутентификације, покушајте поново.",
"error.msg.expired_token": "Процес аутентификације је трајао предуго, покушајте поново.", "error.msg.expired_token": "Процес аутентификације је трајао предуго, покушајте поново.",
"error.msg.invalid_token": "Internal Error", "error.msg.invalid_token": "Интерна грешка",
"error.msg.no_user": "Корисник повезан са овим {0} налогом не постоји.", "error.msg.no_user": "Корисник повезан са овим {0} налогом не постоји.",
"error.msg.no_email": "Не могу да добијем адресу е-поште са овог {0} налога.", "error.msg.no_email": "Не могу да добијем адресу е-поште са овог {0} налога.",
"error.msg.already_linked": "Овај {0} налог је већ повезан са другим налогом.", "error.msg.already_linked": "Овај {0} налог је већ повезан са другим налогом.",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.", "error.msg.not_linked": "Овај {0} налог још увек није повезан ни са једним налогом.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.", "error.msg.unverified_account": "Овај {0} налог је непотврђен, молимо покушајте поново након верификације.",
"error.msg.user_not_allowed": "You are not allowed to sign in.", "error.msg.user_not_allowed": "Није вам дозвољено да се пријавите.",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.", "error.msg.cannot_get_user_info": "Не могу да добијем ваше корисничке информације са овог {0} налога.",
"error.param.provider_github": "GitHub", "error.param.provider_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
@@ -462,11 +467,11 @@ export default {
"common.button.generate": "Генериши", "common.button.generate": "Генериши",
"common.button.done": "Готово", "common.button.done": "Готово",
"common.text.link": "Линк", "common.text.link": "Линк",
"common.text.navigate-to-link": "Visit link", "common.text.navigate-to-link": "Посетите линк",
"common.text.or": "или", "common.text.or": "или",
"common.text.redirecting": "Redirecting...", "common.text.redirecting": "Преусмеравање...",
"common.button.go-back": "Иди назад", "common.button.go-back": "Иди назад",
"common.button.go-home": "Go home", "common.button.go-home": "Почетна страница",
"common.notify.copied": "Ваша веза је копирана у clipboard", "common.notify.copied": "Ваша веза је копирана у clipboard",
"common.success": "Успешно", "common.success": "Успешно",
"common.error": "Грешка", "common.error": "Грешка",
@@ -474,8 +479,8 @@ export default {
"common.error.invalid-email": "Неисправна адреса е-поште", "common.error.invalid-email": "Неисправна адреса е-поште",
"common.error.too-short": "Мора да има најмање {length} знакова", "common.error.too-short": "Мора да има најмање {length} знакова",
"common.error.too-long": "Мора да има највише {length} знакова", "common.error.too-long": "Мора да има највише {length} знакова",
"common.error.number-too-small": "Must be at least {min}", "common.error.number-too-small": "Мора бити најмање {min}",
"common.error.number-too-large": "Must be at most {max}", "common.error.number-too-large": "Мора бити највише {max}",
"common.error.exact-length": "Мора да има тачно {length} знакова", "common.error.exact-length": "Мора да има тачно {length} знакова",
"common.error.invalid-number": "Мора бити број", "common.error.invalid-number": "Мора бити број",
"common.error.field-required": "Поље је обавезно" "common.error.field-required": "Поље је обавезно"

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Ladda upp", "upload.title": "Ladda upp",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Ett fel uppstod när din delning skulle slutföras.", "upload.notify.generic-error": "Ett fel uppstod när din delning skulle slutföras.",
"upload.notify.count-failed": "{count} filer kunde inte laddas upp. Försöker igen.", "upload.notify.count-failed": "{count} filer kunde inte laddas upp. Försöker igen.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Ladda upp filer", "upload.dropzone.title": "Ladda upp filer",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Namn på applikationen", "admin.config.general.app-name.description": "Namn på applikationen",
"admin.config.general.app-url": "Appens URL", "admin.config.general.app-url": "Appens URL",
"admin.config.general.app-url.description": "På vilken URL Pingvin Share finns", "admin.config.general.app-url.description": "På vilken URL Pingvin Share finns",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Visa startsidan", "admin.config.general.show-home-page": "Visa startsidan",
"admin.config.general.show-home-page.description": "Om du vill visa startsidan", "admin.config.general.show-home-page.description": "Om du vill visa startsidan",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "อัพโหลด", "navbar.upload": "อัพโหลด",
"navbar.signin": "เข้าสู่ระบบ", "navbar.signin": "เข้าสู่ระบบ",
"navbar.home": "หน้าหลัก", "navbar.home": "หน้าหลัก",
"navbar.signup": "Sign up", "navbar.signup": "ลงทะเบียน",
"navbar.links.shares": "แชร์ของฉัน", "navbar.links.shares": "แชร์ของฉัน",
"navbar.links.reverse": "รีเวิร์สแชร์", "navbar.links.reverse": "รีเวิร์สแชร์",
"navbar.avatar.account": "บัญชีของฉัน", "navbar.avatar.account": "บัญชีของฉัน",
@@ -26,8 +26,8 @@ export default {
"signin.title": "ยินดีต้อนรับกลับ", "signin.title": "ยินดีต้อนรับกลับ",
"signin.description": "ยังไม่มีบัญชี?", "signin.description": "ยังไม่มีบัญชี?",
"signin.button.signup": "สมัครบัญชี", "signin.button.signup": "สมัครบัญชี",
"signin.input.email-or-username": "อีเมล์์์์์์์์หรือชื่อผู้ใช้", "signin.input.email-or-username": "อีเมลหรือชื่อผู้ใช้",
"signin.input.email-or-username.placeholder": "อีเมล์์์์์์์หรือชื่อผู้ใช้ของคุณ", "signin.input.email-or-username.placeholder": "อีเมลหรือชื่อผู้ใช้ของคุณ",
"signin.input.password": "รหัสผ่าน", "signin.input.password": "รหัสผ่าน",
"signin.input.password.placeholder": "รหัสผ่านของคุณ", "signin.input.password.placeholder": "รหัสผ่านของคุณ",
"signin.button.submit": "เข้าสู่ระบบ", "signin.button.submit": "เข้าสู่ระบบ",
@@ -47,8 +47,8 @@ export default {
"signup.button.signin": "เข้าสู่ระบบ", "signup.button.signin": "เข้าสู่ระบบ",
"signup.input.username": "ชื่อผู้ใช้", "signup.input.username": "ชื่อผู้ใช้",
"signup.input.username.placeholder": "ชื่อผู้ใช้ของคุณ", "signup.input.username.placeholder": "ชื่อผู้ใช้ของคุณ",
"signup.input.email": "อีเมล์์์์์์์์", "signup.input.email": "อีเมล",
"signup.input.email.placeholder": "อีเมล์์์์์์์์ของคุณ", "signup.input.email.placeholder": "อีเมลของคุณ",
"signup.button.submit": "เริ่มต้นกัน", "signup.button.submit": "เริ่มต้นกัน",
// END /auth/signup // END /auth/signup
// /auth/totp // /auth/totp
@@ -57,7 +57,7 @@ export default {
// END /auth/totp // END /auth/totp
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "ลืมรหัสผ่าน?", "resetPassword.title": "ลืมรหัสผ่าน?",
"resetPassword.description": "กรุณาใส่อีเมล์์์์์์์ของคุณเพื่อรีเซ็ตรหัสผ่าน", "resetPassword.description": "กรุณาใส่อีเมลของคุณเพื่อรีเซ็ตรหัสผ่าน",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
"resetPassword.button.back": "กลับไปที่หน้าลงชื่อเข้าใช้", "resetPassword.button.back": "กลับไปที่หน้าลงชื่อเข้าใช้",
"resetPassword.text.resetPassword": "รีเซ็ตรหัสผ่าน", "resetPassword.text.resetPassword": "รีเซ็ตรหัสผ่าน",
@@ -68,7 +68,7 @@ export default {
"account.title": "บัญชีของฉัน", "account.title": "บัญชีของฉัน",
"account.card.info.title": "ข้อมูลบัญชี", "account.card.info.title": "ข้อมูลบัญชี",
"account.card.info.username": "ชื่อผู้ใช้", "account.card.info.username": "ชื่อผู้ใช้",
"account.card.info.email": "อีเมล์์์์์์์", "account.card.info.email": "อีเมล",
"account.notify.info.success": "อัปเดตบัญชีเรียบร้อยแล้ว", "account.notify.info.success": "อัปเดตบัญชีเรียบร้อยแล้ว",
"account.card.password.title": "รหัสผ่าน", "account.card.password.title": "รหัสผ่าน",
"account.card.password.old": "รหัสผ่านเก่า", "account.card.password.old": "รหัสผ่านเก่า",
@@ -181,7 +181,7 @@ export default {
// /admin/users // /admin/users
"admin.users.title": "การจัดการผู้ใช้", "admin.users.title": "การจัดการผู้ใช้",
"admin.users.table.username": "ชื่อผู้ใช้", "admin.users.table.username": "ชื่อผู้ใช้",
"admin.users.table.email": "อีเมล์์์์์์์", "admin.users.table.email": "อีเมล",
"admin.users.table.admin": "ผู้ดูแลระบบ", "admin.users.table.admin": "ผู้ดูแลระบบ",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "Edit user: {username}",
"admin.users.edit.update.admin-privileges": "สิทธิ์ของผู้ดูแลระบบ", "admin.users.edit.update.admin-privileges": "สิทธิ์ของผู้ดูแลระบบ",
@@ -194,10 +194,10 @@ export default {
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "สร้างผู้ใช้", "admin.users.modal.create.title": "สร้างผู้ใช้",
"admin.users.modal.create.username": "ชื่อผู้ใช้", "admin.users.modal.create.username": "ชื่อผู้ใช้",
"admin.users.modal.create.email": "อีเมล", "admin.users.modal.create.email": "อีเมล",
"admin.users.modal.create.password": "รหัสผ่าน", "admin.users.modal.create.password": "รหัสผ่าน",
"admin.users.modal.create.manual-password": "ตั้งรหัสผ่านด้วยตนเอง", "admin.users.modal.create.manual-password": "ตั้งรหัสผ่านด้วยตนเอง",
"admin.users.modal.create.manual-password.description": "หากไม่ติ๊กเลือก ผู้ใช้จะได้รับอีเมลพร้อมลิงก์เพื่อตั้งรหัสผ่านด้วยตนเอง", "admin.users.modal.create.manual-password.description": "หากไม่ติ๊กเลือก ผู้ใช้จะได้รับอีเมลพร้อมลิงก์เพื่อตั้งรหัสผ่านด้วยตนเอง",
"admin.users.modal.create.admin": "สิทธิ์ของผู้ดูแลระบบ", "admin.users.modal.create.admin": "สิทธิ์ของผู้ดูแลระบบ",
"admin.users.modal.create.admin.description": "หากติ๊กเลือก ผู้ใช้จะสามารถเข้าถึงแผงควบคุมระบบได้", "admin.users.modal.create.admin.description": "หากติ๊กเลือก ผู้ใช้จะสามารถเข้าถึงแผงควบคุมระบบได้",
// END /admin/users // END /admin/users
@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "อัปโหลด", "upload.title": "อัปโหลด",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "เกิดข้อผิดพลาดขณะที่กำลังจัดการการแชร์ของคุณ", "upload.notify.generic-error": "เกิดข้อผิดพลาดขณะที่กำลังจัดการการแชร์ของคุณ",
"upload.notify.count-failed": "มีไฟล์จำนวน {count} ไฟล์ที่ไม่สามารถอัปโหลดได้ กำลังลองอีกครั้ง", "upload.notify.count-failed": "มีไฟล์จำนวน {count} ไฟล์ที่ไม่สามารถอัปโหลดได้ กำลังลองอีกครั้ง",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "อัปโหลดไฟล์", "upload.dropzone.title": "อัปโหลดไฟล์",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -247,9 +250,9 @@ export default {
"upload.modal.accordion.name-and-description.title": "Name and description", "upload.modal.accordion.name-and-description.title": "Name and description",
"upload.modal.accordion.name-and-description.name.placeholder": "Name", "upload.modal.accordion.name-and-description.name.placeholder": "Name",
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share", "upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share",
"upload.modal.accordion.email.title": "ผู้รับอีเมล", "upload.modal.accordion.email.title": "ผู้รับอีเมล",
"upload.modal.accordion.email.placeholder": "ป้อนผู้รับอีเมล", "upload.modal.accordion.email.placeholder": "ป้อนผู้รับอีเมล",
"upload.modal.accordion.email.invalid-email": "ที่อยู่อีเมลไม่ถูกต้อง", "upload.modal.accordion.email.invalid-email": "ที่อยู่อีเมลไม่ถูกต้อง",
"upload.modal.accordion.security.title": "ตัวเลือกความปลอดภัย", "upload.modal.accordion.security.title": "ตัวเลือกความปลอดภัย",
"upload.modal.accordion.security.password.label": "การป้องกันรหัสผ่าน", "upload.modal.accordion.security.password.label": "การป้องกันรหัสผ่าน",
"upload.modal.accordion.security.password.placeholder": "ไม่มีรหัสผ่าน", "upload.modal.accordion.security.password.placeholder": "ไม่มีรหัสผ่าน",
@@ -293,13 +296,15 @@ export default {
"admin.config.title": "การตั้งค่า", "admin.config.title": "การตั้งค่า",
"admin.config.category.general": "ทั่วไป", "admin.config.category.general": "ทั่วไป",
"admin.config.category.share": "การแชร์", "admin.config.category.share": "การแชร์",
"admin.config.category.email": "อีเมล์์์์์์", "admin.config.category.email": "อีเมล",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login", "admin.config.category.oauth": "Social Login",
"admin.config.general.app-name": "ชื่อแอพ", "admin.config.general.app-name": "ชื่อแอพ",
"admin.config.general.app-name.description": "ชื่อแอพพลิเคชัน", "admin.config.general.app-name.description": "ชื่อแอพพลิเคชัน",
"admin.config.general.app-url": "URL ของแอพ", "admin.config.general.app-url": "URL ของแอพ",
"admin.config.general.app-url.description": "URL ที่สามารถเข้าถึงแอพพลิเคชัน Pingvin Share ได้", "admin.config.general.app-url.description": "URL ที่สามารถเข้าถึงแอพพลิเคชัน Pingvin Share ได้",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "แสดงหน้าแรก", "admin.config.general.show-home-page": "แสดงหน้าแรก",
"admin.config.general.show-home-page.description": "หากติ๊ก เว็บไซต์จะแสดงหน้าหลักเวลาเข้าถึง URL หลัก", "admin.config.general.show-home-page.description": "หากติ๊ก เว็บไซต์จะแสดงหน้าหลักเวลาเข้าถึง URL หลัก",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",
@@ -309,9 +314,9 @@ export default {
"admin.config.general.logo.placeholder": "คลิกที่นี่หรือลากไฟล์มา", "admin.config.general.logo.placeholder": "คลิกที่นี่หรือลากไฟล์มา",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "หัวเรื่องผู้รับอีเมล์์์์์์ของการแชร์", "admin.config.email.share-recipients-subject": "หัวเรื่องผู้รับอีเมลของการแชร์",
"admin.config.email.share-recipients-subject.description": "หัวเรื่องของอีเมล์์์์์์์์ที่ส่งไปยังผู้รับอีเมล์์์์์์ของการแชร์", "admin.config.email.share-recipients-subject.description": "หัวเรื่องของอีเมลที่ส่งไปยังผู้รับอีเมลของการแชร์",
"admin.config.email.share-recipients-message": "ข้อความผู้รับอีเมล์์์์์์ของการแชร์", "admin.config.email.share-recipients-message": "ข้อความผู้รับอีเมลของการแชร์",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.", "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
"admin.config.email.reverse-share-subject": "หัวเรื่องการแชร์รีเวิร์ส", "admin.config.email.reverse-share-subject": "หัวเรื่องการแชร์รีเวิร์ส",
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.", "admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
@@ -340,12 +345,12 @@ export default {
"admin.config.share.auto-open-share-modal": "Auto open create share modal", "admin.config.share.auto-open-share-modal": "Auto open create share modal",
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.", "admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "Enable",
"admin.config.smtp.enabled.description": "เปิดใช้งาน SMTP สำหรับการส่งอีเมล์์์์์์ เปิดได้เท่านั้นต่อเมื่อคุณใส่ข้อมูลโฮสต์ พอร์ต อีเมล ผู้ใช้ และรหัสผ่านของเซิร์ฟเวอร์ SMTP ของคุณ", "admin.config.smtp.enabled.description": "เปิดใช้งาน SMTP สำหรับการส่งอีเมล เปิดได้เท่านั้นต่อเมื่อคุณใส่ข้อมูลโฮสต์ พอร์ต อีเมล ผู้ใช้ และรหัสผ่านของเซิร์ฟเวอร์ SMTP ของค",
"admin.config.smtp.host": "โฮสต์", "admin.config.smtp.host": "โฮสต์",
"admin.config.smtp.host.description": "โฮสต์ของเซิร์ฟเวอร์ SMTP", "admin.config.smtp.host.description": "โฮสต์ของเซิร์ฟเวอร์ SMTP",
"admin.config.smtp.port": "พอร์ต", "admin.config.smtp.port": "พอร์ต",
"admin.config.smtp.port.description": "พอร์ตของเซิร์ฟเวอร์ SMTP", "admin.config.smtp.port.description": "พอร์ตของเซิร์ฟเวอร์ SMTP",
"admin.config.smtp.email": "อีเมล์์์์์์์", "admin.config.smtp.email": "อีเมล",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from wich the emails get sent",
"admin.config.smtp.username": "ชื่อผู้ใช้", "admin.config.smtp.username": "ชื่อผู้ใช้",
"admin.config.smtp.username.description": "ชื่อผู้ใช้ของเซิร์ฟเวอร์ SMTP", "admin.config.smtp.username.description": "ชื่อผู้ใช้ของเซิร์ฟเวอร์ SMTP",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Yükle", "upload.title": "Yükle",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Paylaşımını bitirirken bir hata meydana geldi.", "upload.notify.generic-error": "Paylaşımını bitirirken bir hata meydana geldi.",
"upload.notify.count-failed": "{count} dosya yüklenemedi. Yeniden deneniyor.", "upload.notify.count-failed": "{count} dosya yüklenemedi. Yeniden deneniyor.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Dosya yükle", "upload.dropzone.title": "Dosya yükle",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Uygulamanın adı", "admin.config.general.app-name.description": "Uygulamanın adı",
"admin.config.general.app-url": "Uygulama URL'si", "admin.config.general.app-url": "Uygulama URL'si",
"admin.config.general.app-url.description": "Pingvin Share'in hangi bağlantıda kullanılacağı", "admin.config.general.app-url.description": "Pingvin Share'in hangi bağlantıda kullanılacağı",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Ana sayfayı göster", "admin.config.general.show-home-page": "Ana sayfayı göster",
"admin.config.general.show-home-page.description": "Ana sayfanın görünürlüğü", "admin.config.general.show-home-page.description": "Ana sayfanın görünürlüğü",
"admin.config.general.session-duration": "Oturum Süresi", "admin.config.general.session-duration": "Oturum Süresi",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Завантажити", "upload.title": "Завантажити",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "Сталася помилка під час завершення вашого завантаження.", "upload.notify.generic-error": "Сталася помилка під час завершення вашого завантаження.",
"upload.notify.count-failed": "Не вдалося завантажити файли {count}. Повтор спроби.", "upload.notify.count-failed": "Не вдалося завантажити файли {count}. Повтор спроби.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Завантажити файли", "upload.dropzone.title": "Завантажити файли",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Видима назва додатка", "admin.config.general.app-name.description": "Видима назва додатка",
"admin.config.general.app-url": "URL-адреса програми", "admin.config.general.app-url": "URL-адреса програми",
"admin.config.general.app-url.description": "Адреса, на якій доступний Pingvin Share", "admin.config.general.app-url.description": "Адреса, на якій доступний Pingvin Share",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Показувати домашню сторінку", "admin.config.general.show-home-page": "Показувати домашню сторінку",
"admin.config.general.show-home-page.description": "Показувати домашню сторінку чи ні", "admin.config.general.show-home-page.description": "Показувати домашню сторінку чи ні",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Tải lên", "upload.title": "Tải lên",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "An error occurred while finishing your share.", "upload.notify.generic-error": "An error occurred while finishing your share.",
"upload.notify.count-failed": "{count} files failed to upload. Trying again.", "upload.notify.count-failed": "{count} files failed to upload. Trying again.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Upload files", "upload.dropzone.title": "Upload files",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "Name of the application", "admin.config.general.app-name.description": "Name of the application",
"admin.config.general.app-url": "URL ứng dụng", "admin.config.general.app-url": "URL ứng dụng",
"admin.config.general.app-url.description": "On which URL Pingvin Share is available", "admin.config.general.app-url.description": "On which URL Pingvin Share is available",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "Show home page", "admin.config.general.show-home-page": "Show home page",
"admin.config.general.show-home-page.description": "Whether to show the home page", "admin.config.general.show-home-page.description": "Whether to show the home page",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "上传", "navbar.upload": "上传",
"navbar.signin": "登录", "navbar.signin": "登录",
"navbar.home": "首页", "navbar.home": "首页",
"navbar.signup": "Sign up", "navbar.signup": "注册",
"navbar.links.shares": "我的共享", "navbar.links.shares": "我的共享",
"navbar.links.reverse": "预留共享", "navbar.links.reverse": "预留共享",
"navbar.avatar.account": "我的账户", "navbar.avatar.account": "我的账户",
@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "上传", "upload.title": "上传",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "创建共享的过程中发生了错误", "upload.notify.generic-error": "创建共享的过程中发生了错误",
"upload.notify.count-failed": "{count} 文件上传失败,请重试", "upload.notify.count-failed": "{count} 文件上传失败,请重试",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "上传文件", "upload.dropzone.title": "上传文件",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "自定义 App 的名称", "admin.config.general.app-name.description": "自定义 App 的名称",
"admin.config.general.app-url": "App 的地址", "admin.config.general.app-url": "App 的地址",
"admin.config.general.app-url.description": "Pingvin Share 的 URL 地址", "admin.config.general.app-url.description": "Pingvin Share 的 URL 地址",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "显示首页", "admin.config.general.show-home-page": "显示首页",
"admin.config.general.show-home-page.description": "是否显示首页", "admin.config.general.show-home-page.description": "是否显示首页",
"admin.config.general.session-duration": "会话时长", "admin.config.general.session-duration": "会话时长",
@@ -475,7 +480,7 @@ export default {
"common.error.too-short": "必须不少于 {length} 个字符", "common.error.too-short": "必须不少于 {length} 个字符",
"common.error.too-long": "必须不超过 {length} 个字符", "common.error.too-long": "必须不超过 {length} 个字符",
"common.error.number-too-small": "Must be at least {min}", "common.error.number-too-small": "Must be at least {min}",
"common.error.number-too-large": "Must be at most {max}", "common.error.number-too-large": "必须至多为 {max}",
"common.error.exact-length": "必须为 {length} 个字符", "common.error.exact-length": "必须为 {length} 个字符",
"common.error.invalid-number": "必须为数字", "common.error.invalid-number": "必须为数字",
"common.error.field-required": "必填项" "common.error.field-required": "必填项"

View File

@@ -212,8 +212,11 @@ export default {
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "上傳", "upload.title": "上傳",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.generic-error": "建立分享的過程中發生了錯誤", "upload.notify.generic-error": "建立分享的過程中發生了錯誤",
"upload.notify.count-failed": "{count} 檔案上傳失敗,請重試", "upload.notify.count-failed": "{count} 檔案上傳失敗,請重試",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "上傳檔案", "upload.dropzone.title": "上傳檔案",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
@@ -300,6 +303,8 @@ export default {
"admin.config.general.app-name.description": "這個 App 的名稱", "admin.config.general.app-name.description": "這個 App 的名稱",
"admin.config.general.app-url": "App URL", "admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "Pingvin Share 的 URL", "admin.config.general.app-url.description": "Pingvin Share 的 URL",
"admin.config.general.secure-cookies": "Secure cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
"admin.config.general.show-home-page": "顯示首頁", "admin.config.general.show-home-page": "顯示首頁",
"admin.config.general.show-home-page.description": "是否顯示首頁", "admin.config.general.show-home-page.description": "是否顯示首頁",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Session Duration",

View File

@@ -279,10 +279,7 @@ const Account = () => {
) : ( ) : (
<Button <Button
component="a" component="a"
href={getOAuthUrl( href={getOAuthUrl(window.location.origin, provider)}
config.get("general.appUrl"),
provider,
)}
> >
{t("account.card.oauth.link")} {t("account.card.oauth.link")}
</Button> </Button>
@@ -414,8 +411,10 @@ const Account = () => {
}, },
confirmProps: { color: "red" }, confirmProps: { color: "red" },
onConfirm: async () => { onConfirm: async () => {
await userService.removeCurrentUser(); await userService
window.location.reload(); .removeCurrentUser()
.then(window.location.reload)
.catch(toast.axiosError);
}, },
}) })
} }

View File

@@ -37,8 +37,6 @@ const MyShares = () => {
const config = useConfig(); const config = useConfig();
const appUrl = config.get("general.appUrl");
const [reverseShares, setReverseShares] = useState<MyReverseShare[]>(); const [reverseShares, setReverseShares] = useState<MyReverseShare[]>();
const getReverseShares = () => { const getReverseShares = () => {
@@ -146,7 +144,7 @@ const MyShares = () => {
{reverseShare.shares.map((share) => ( {reverseShare.shares.map((share) => (
<Group key={share.id} mb={4}> <Group key={share.id} mb={4}>
<Anchor <Anchor
href={`${appUrl}/share/${share.id}`} href={`${window.location.origin}/share/${share.id}`}
target="_blank" target="_blank"
> >
<Text maw={120} truncate> <Text maw={120} truncate>
@@ -159,14 +157,12 @@ const MyShares = () => {
size={25} size={25}
onClick={() => { onClick={() => {
if (window.isSecureContext) { if (window.isSecureContext) {
clipboard.copy(`${appUrl}/s/${share.id}`); clipboard.copy(
`${window.location.origin}/s/${share.id}`,
);
toast.success(t("common.notify.copied")); toast.success(t("common.notify.copied"));
} else { } else {
showShareLinkModal( showShareLinkModal(modals, share.id);
modals,
share.id,
config.get("general.appUrl"),
);
} }
}} }}
> >
@@ -197,7 +193,7 @@ const MyShares = () => {
onClick={() => { onClick={() => {
if (window.isSecureContext) { if (window.isSecureContext) {
clipboard.copy( clipboard.copy(
`${config.get("general.appUrl")}/upload/${ `${window.location.origin}/upload/${
reverseShare.token reverseShare.token
}`, }`,
); );
@@ -206,7 +202,6 @@ const MyShares = () => {
showReverseShareLinkModal( showReverseShareLinkModal(
modals, modals,
reverseShare.token, reverseShare.token,
config.get("general.appUrl"),
); );
} }
}} }}

View File

@@ -4,7 +4,6 @@ import {
Button, Button,
Center, Center,
Group, Group,
MediaQuery,
Space, Space,
Stack, Stack,
Table, Table,
@@ -109,7 +108,6 @@ const MyShares = () => {
showShareInformationsModal( showShareInformationsModal(
modals, modals,
share, share,
config.get("general.appUrl"),
parseInt(config.get("share.maxSize")), parseInt(config.get("share.maxSize")),
); );
}} }}
@@ -123,15 +121,11 @@ const MyShares = () => {
onClick={() => { onClick={() => {
if (window.isSecureContext) { if (window.isSecureContext) {
clipboard.copy( clipboard.copy(
`${config.get("general.appUrl")}/s/${share.id}`, `${window.location.origin}/s/${share.id}`,
); );
toast.success(t("common.notify.copied")); toast.success(t("common.notify.copied"));
} else { } else {
showShareLinkModal( showShareLinkModal(modals, share.id);
modals,
share.id,
config.get("general.appUrl"),
);
} }
}} }}
> >

View File

@@ -2,12 +2,13 @@ import { LoadingOverlay } from "@mantine/core";
import { useModals } from "@mantine/modals"; import { useModals } from "@mantine/modals";
import { GetServerSidePropsContext } from "next"; import { GetServerSidePropsContext } from "next";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Meta from "../../../components/Meta";
import showErrorModal from "../../../components/share/showErrorModal"; import showErrorModal from "../../../components/share/showErrorModal";
import EditableUpload from "../../../components/upload/EditableUpload";
import useConfirmLeave from "../../../hooks/confirm-leave.hook";
import useTranslate from "../../../hooks/useTranslate.hook";
import shareService from "../../../services/share.service"; import shareService from "../../../services/share.service";
import { Share as ShareType } from "../../../types/share.type"; import { Share as ShareType } from "../../../types/share.type";
import useTranslate from "../../../hooks/useTranslate.hook";
import EditableUpload from "../../../components/upload/EditableUpload";
import Meta from "../../../components/Meta";
export function getServerSideProps(context: GetServerSidePropsContext) { export function getServerSideProps(context: GetServerSidePropsContext) {
return { return {
@@ -18,9 +19,15 @@ export function getServerSideProps(context: GetServerSidePropsContext) {
const Share = ({ shareId }: { shareId: string }) => { const Share = ({ shareId }: { shareId: string }) => {
const t = useTranslate(); const t = useTranslate();
const modals = useModals(); const modals = useModals();
const [isLoading, setIsLoading] = useState(true); const [isLoading, setIsLoading] = useState(true);
const [share, setShare] = useState<ShareType>(); const [share, setShare] = useState<ShareType>();
useConfirmLeave({
message: t("upload.notify.confirm-leave"),
enabled: isLoading,
});
useEffect(() => { useEffect(() => {
shareService shareService
.getFromOwner(shareId) .getFromOwner(shareId)

View File

@@ -5,6 +5,7 @@ import { useEffect, useState } from "react";
import Upload from "."; import Upload from ".";
import showErrorModal from "../../components/share/showErrorModal"; import showErrorModal from "../../components/share/showErrorModal";
import shareService from "../../services/share.service"; import shareService from "../../services/share.service";
import useTranslate from "../../hooks/useTranslate.hook";
export function getServerSideProps(context: GetServerSidePropsContext) { export function getServerSideProps(context: GetServerSidePropsContext) {
return { return {
@@ -14,6 +15,7 @@ export function getServerSideProps(context: GetServerSidePropsContext) {
const Share = ({ reverseShareToken }: { reverseShareToken: string }) => { const Share = ({ reverseShareToken }: { reverseShareToken: string }) => {
const modals = useModals(); const modals = useModals();
const t = useTranslate();
const [isLoading, setIsLoading] = useState(true); const [isLoading, setIsLoading] = useState(true);
const [maxShareSize, setMaxShareSize] = useState(0); const [maxShareSize, setMaxShareSize] = useState(0);
@@ -30,8 +32,8 @@ const Share = ({ reverseShareToken }: { reverseShareToken: string }) => {
.catch(() => { .catch(() => {
showErrorModal( showErrorModal(
modals, modals,
"Invalid Link", t("upload.reverse-share.error.invalid.title"),
"This link is invalid. Please check your link.", t("upload.reverse-share.error.invalid.description"),
"go-home", "go-home",
); );
setIsLoading(false); setIsLoading(false);

View File

@@ -11,6 +11,7 @@ import FileList from "../../components/upload/FileList";
import showCompletedUploadModal from "../../components/upload/modals/showCompletedUploadModal"; import showCompletedUploadModal from "../../components/upload/modals/showCompletedUploadModal";
import showCreateUploadModal from "../../components/upload/modals/showCreateUploadModal"; import showCreateUploadModal from "../../components/upload/modals/showCreateUploadModal";
import useConfig from "../../hooks/config.hook"; import useConfig from "../../hooks/config.hook";
import useConfirmLeave from "../../hooks/confirm-leave.hook";
import useTranslate from "../../hooks/useTranslate.hook"; import useTranslate from "../../hooks/useTranslate.hook";
import useUser from "../../hooks/user.hook"; import useUser from "../../hooks/user.hook";
import shareService from "../../services/share.service"; import shareService from "../../services/share.service";
@@ -39,6 +40,11 @@ const Upload = ({
const [files, setFiles] = useState<FileUpload[]>([]); const [files, setFiles] = useState<FileUpload[]>([]);
const [isUploading, setisUploading] = useState(false); const [isUploading, setisUploading] = useState(false);
useConfirmLeave({
message: t("upload.notify.confirm-leave"),
enabled: isUploading,
});
const chunkSize = useRef(parseInt(config.get("share.chunkSize"))); const chunkSize = useRef(parseInt(config.get("share.chunkSize")));
maxShareSize ??= parseInt(config.get("share.maxSize")); maxShareSize ??= parseInt(config.get("share.maxSize"));
@@ -129,7 +135,6 @@ const Upload = ({
{ {
isUserSignedIn: user ? true : false, isUserSignedIn: user ? true : false,
isReverseShare, isReverseShare,
appUrl: config.get("general.appUrl"),
allowUnauthenticatedShares: config.get( allowUnauthenticatedShares: config.get(
"share.allowUnauthenticatedShares", "share.allowUnauthenticatedShares",
), ),
@@ -183,7 +188,7 @@ const Upload = ({
.completeShare(createdShare.id) .completeShare(createdShare.id)
.then((share) => { .then((share) => {
setisUploading(false); setisUploading(false);
showCompletedUploadModal(modals, share, config.get("general.appUrl")); showCompletedUploadModal(modals, share);
setFiles([]); setFiles([]);
}) })
.catch(() => toast.error(t("upload.notify.generic-error"))); .catch(() => toast.error(t("upload.notify.generic-error")));

4
package-lock.json generated
View File

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

View File

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