Merge branch 'development' into release
This commit is contained in:
commit
2641586a6f
|
@ -85,5 +85,12 @@ class RouteServiceProvider extends ServiceProvider
|
||||||
RateLimiter::for('public', function (Request $request) {
|
RateLimiter::for('public', function (Request $request) {
|
||||||
return Limit::perMinute(10)->by($request->ip());
|
return Limit::perMinute(10)->by($request->ip());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
RateLimiter::for('exports', function (Request $request) {
|
||||||
|
$user = user();
|
||||||
|
$attempts = $user->isGuest() ? 4 : 10;
|
||||||
|
$key = $user->isGuest() ? $request->ip() : $user->id;
|
||||||
|
return Limit::perMinute($attempts)->by($key);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ class BookExportController extends Controller
|
||||||
protected ExportFormatter $exportFormatter,
|
protected ExportFormatter $exportFormatter,
|
||||||
) {
|
) {
|
||||||
$this->middleware('can:content-export');
|
$this->middleware('can:content-export');
|
||||||
|
$this->middleware('throttle:exports');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,6 +76,6 @@ class BookExportController extends Controller
|
||||||
$book = $this->queries->findVisibleBySlugOrFail($bookSlug);
|
$book = $this->queries->findVisibleBySlugOrFail($bookSlug);
|
||||||
$zip = $builder->buildForBook($book);
|
$zip = $builder->buildForBook($book);
|
||||||
|
|
||||||
return $this->download()->streamedDirectly(fopen($zip, 'r'), $bookSlug . '.zip', filesize($zip));
|
return $this->download()->streamedFileDirectly($zip, $bookSlug . '.zip', filesize($zip), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ class ChapterExportController extends Controller
|
||||||
protected ExportFormatter $exportFormatter,
|
protected ExportFormatter $exportFormatter,
|
||||||
) {
|
) {
|
||||||
$this->middleware('can:content-export');
|
$this->middleware('can:content-export');
|
||||||
|
$this->middleware('throttle:exports');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -81,6 +82,6 @@ class ChapterExportController extends Controller
|
||||||
$chapter = $this->queries->findVisibleBySlugsOrFail($bookSlug, $chapterSlug);
|
$chapter = $this->queries->findVisibleBySlugsOrFail($bookSlug, $chapterSlug);
|
||||||
$zip = $builder->buildForChapter($chapter);
|
$zip = $builder->buildForChapter($chapter);
|
||||||
|
|
||||||
return $this->download()->streamedDirectly(fopen($zip, 'r'), $chapterSlug . '.zip', filesize($zip));
|
return $this->download()->streamedFileDirectly($zip, $chapterSlug . '.zip', filesize($zip), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ class PageExportController extends Controller
|
||||||
protected ExportFormatter $exportFormatter,
|
protected ExportFormatter $exportFormatter,
|
||||||
) {
|
) {
|
||||||
$this->middleware('can:content-export');
|
$this->middleware('can:content-export');
|
||||||
|
$this->middleware('throttle:exports');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -85,6 +86,6 @@ class PageExportController extends Controller
|
||||||
$page = $this->queries->findVisibleBySlugsOrFail($bookSlug, $pageSlug);
|
$page = $this->queries->findVisibleBySlugsOrFail($bookSlug, $pageSlug);
|
||||||
$zip = $builder->buildForPage($page);
|
$zip = $builder->buildForPage($page);
|
||||||
|
|
||||||
return $this->download()->streamedDirectly(fopen($zip, 'r'), $pageSlug . '.zip', filesize($zip));
|
return $this->download()->streamedFileDirectly($zip, $pageSlug . '.zip', filesize($zip), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,18 +90,28 @@ class PdfGenerator
|
||||||
$process = Process::fromShellCommandline($command);
|
$process = Process::fromShellCommandline($command);
|
||||||
$process->setTimeout($timeout);
|
$process->setTimeout($timeout);
|
||||||
|
|
||||||
|
$cleanup = function () use ($inputHtml, $outputPdf) {
|
||||||
|
foreach ([$inputHtml, $outputPdf] as $file) {
|
||||||
|
if (file_exists($file)) {
|
||||||
|
unlink($file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$process->run();
|
$process->run();
|
||||||
} catch (ProcessTimedOutException $e) {
|
} catch (ProcessTimedOutException $e) {
|
||||||
|
$cleanup();
|
||||||
throw new PdfExportException("PDF Export via command failed due to timeout at {$timeout} second(s)");
|
throw new PdfExportException("PDF Export via command failed due to timeout at {$timeout} second(s)");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$process->isSuccessful()) {
|
if (!$process->isSuccessful()) {
|
||||||
|
$cleanup();
|
||||||
throw new PdfExportException("PDF Export via command failed with exit code {$process->getExitCode()}, stdout: {$process->getOutput()}, stderr: {$process->getErrorOutput()}");
|
throw new PdfExportException("PDF Export via command failed with exit code {$process->getExitCode()}, stdout: {$process->getOutput()}, stderr: {$process->getErrorOutput()}");
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdfContents = file_get_contents($outputPdf);
|
$pdfContents = file_get_contents($outputPdf);
|
||||||
unlink($outputPdf);
|
$cleanup();
|
||||||
|
|
||||||
if ($pdfContents === false) {
|
if ($pdfContents === false) {
|
||||||
throw new PdfExportException("PDF Export via command failed, unable to read PDF output file");
|
throw new PdfExportException("PDF Export via command failed, unable to read PDF output file");
|
||||||
|
|
|
@ -84,10 +84,27 @@ class ZipExportBuilder
|
||||||
$zip->addEmptyDir('files');
|
$zip->addEmptyDir('files');
|
||||||
|
|
||||||
$toRemove = [];
|
$toRemove = [];
|
||||||
$this->files->extractEach(function ($filePath, $fileRef) use ($zip, &$toRemove) {
|
$addedNames = [];
|
||||||
$zip->addFile($filePath, "files/$fileRef");
|
|
||||||
|
try {
|
||||||
|
$this->files->extractEach(function ($filePath, $fileRef) use ($zip, &$toRemove, &$addedNames) {
|
||||||
|
$entryName = "files/$fileRef";
|
||||||
|
$zip->addFile($filePath, $entryName);
|
||||||
$toRemove[] = $filePath;
|
$toRemove[] = $filePath;
|
||||||
|
$addedNames[] = $entryName;
|
||||||
});
|
});
|
||||||
|
} catch (\Exception $exception) {
|
||||||
|
// Cleanup the files we've processed so far and respond back with error
|
||||||
|
foreach ($toRemove as $file) {
|
||||||
|
unlink($file);
|
||||||
|
}
|
||||||
|
foreach ($addedNames as $name) {
|
||||||
|
$zip->deleteName($name);
|
||||||
|
}
|
||||||
|
$zip->close();
|
||||||
|
unlink($zipFile);
|
||||||
|
throw new ZipExportException("Failed to add files for ZIP export, received error: " . $exception->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
$zip->close();
|
$zip->close();
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||||
class DownloadResponseFactory
|
class DownloadResponseFactory
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
protected Request $request
|
protected Request $request,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,32 @@ class DownloadResponseFactory
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a response that downloads the given file via a stream.
|
||||||
|
* Has the option to delete the provided file once the stream is closed.
|
||||||
|
*/
|
||||||
|
public function streamedFileDirectly(string $filePath, string $fileName, int $fileSize, bool $deleteAfter = false): StreamedResponse
|
||||||
|
{
|
||||||
|
$stream = fopen($filePath, 'r');
|
||||||
|
|
||||||
|
if ($deleteAfter) {
|
||||||
|
// Delete the given file if it still exists after the app terminates
|
||||||
|
$callback = function () use ($filePath) {
|
||||||
|
if (file_exists($filePath)) {
|
||||||
|
unlink($filePath);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// We watch both app terminate and php shutdown to cover both normal app termination
|
||||||
|
// as well as other potential scenarios (connection termination).
|
||||||
|
app()->terminating($callback);
|
||||||
|
register_shutdown_function($callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->streamedDirectly($stream, $fileName, $fileSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a file download response that provides the file with a content-type
|
* Create a file download response that provides the file with a content-type
|
||||||
* correct for the file, in a way so the browser can show the content in browser,
|
* correct for the file, in a way so the browser can show the content in browser,
|
||||||
|
|
|
@ -62,16 +62,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "aws/aws-sdk-php",
|
"name": "aws/aws-sdk-php",
|
||||||
"version": "3.336.2",
|
"version": "3.336.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||||
"reference": "954bfdfc048840ca34afe2a2e1cbcff6681989c4"
|
"reference": "933da0d1b9b1ac9b37d5e32e127d4581b1aabaf6"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/954bfdfc048840ca34afe2a2e1cbcff6681989c4",
|
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/933da0d1b9b1ac9b37d5e32e127d4581b1aabaf6",
|
||||||
"reference": "954bfdfc048840ca34afe2a2e1cbcff6681989c4",
|
"reference": "933da0d1b9b1ac9b37d5e32e127d4581b1aabaf6",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -154,9 +154,9 @@
|
||||||
"support": {
|
"support": {
|
||||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.336.2"
|
"source": "https://github.com/aws/aws-sdk-php/tree/3.336.8"
|
||||||
},
|
},
|
||||||
"time": "2024-12-20T19:05:10+00:00"
|
"time": "2025-01-03T19:06:11+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "bacon/bacon-qr-code",
|
"name": "bacon/bacon-qr-code",
|
||||||
|
@ -978,16 +978,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dompdf/dompdf",
|
"name": "dompdf/dompdf",
|
||||||
"version": "v3.0.1",
|
"version": "v3.0.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/dompdf/dompdf.git",
|
"url": "https://github.com/dompdf/dompdf.git",
|
||||||
"reference": "2d622faf9aa1f8f7f24dd094e49b5cf6c0c5d4e6"
|
"reference": "baf4084b27c7f4b5b7a221b19a94d11327664eb8"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/dompdf/dompdf/zipball/2d622faf9aa1f8f7f24dd094e49b5cf6c0c5d4e6",
|
"url": "https://api.github.com/repos/dompdf/dompdf/zipball/baf4084b27c7f4b5b7a221b19a94d11327664eb8",
|
||||||
"reference": "2d622faf9aa1f8f7f24dd094e49b5cf6c0c5d4e6",
|
"reference": "baf4084b27c7f4b5b7a221b19a94d11327664eb8",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1003,7 +1003,7 @@
|
||||||
"ext-json": "*",
|
"ext-json": "*",
|
||||||
"ext-zip": "*",
|
"ext-zip": "*",
|
||||||
"mockery/mockery": "^1.3",
|
"mockery/mockery": "^1.3",
|
||||||
"phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10",
|
"phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10 || ^11",
|
||||||
"squizlabs/php_codesniffer": "^3.5",
|
"squizlabs/php_codesniffer": "^3.5",
|
||||||
"symfony/process": "^4.4 || ^5.4 || ^6.2 || ^7.0"
|
"symfony/process": "^4.4 || ^5.4 || ^6.2 || ^7.0"
|
||||||
},
|
},
|
||||||
|
@ -1036,9 +1036,9 @@
|
||||||
"homepage": "https://github.com/dompdf/dompdf",
|
"homepage": "https://github.com/dompdf/dompdf",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/dompdf/dompdf/issues",
|
"issues": "https://github.com/dompdf/dompdf/issues",
|
||||||
"source": "https://github.com/dompdf/dompdf/tree/v3.0.1"
|
"source": "https://github.com/dompdf/dompdf/tree/v3.0.2"
|
||||||
},
|
},
|
||||||
"time": "2024-12-05T14:59:38+00:00"
|
"time": "2024-12-27T20:27:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dompdf/php-font-lib",
|
"name": "dompdf/php-font-lib",
|
||||||
|
@ -1198,16 +1198,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "egulias/email-validator",
|
"name": "egulias/email-validator",
|
||||||
"version": "4.0.2",
|
"version": "4.0.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/egulias/EmailValidator.git",
|
"url": "https://github.com/egulias/EmailValidator.git",
|
||||||
"reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
|
"reference": "b115554301161fa21467629f1e1391c1936de517"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
|
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517",
|
||||||
"reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
|
"reference": "b115554301161fa21467629f1e1391c1936de517",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1253,7 +1253,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/egulias/EmailValidator/issues",
|
"issues": "https://github.com/egulias/EmailValidator/issues",
|
||||||
"source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
|
"source": "https://github.com/egulias/EmailValidator/tree/4.0.3"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1261,7 +1261,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-10-06T06:47:41+00:00"
|
"time": "2024-12-27T00:36:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "firebase/php-jwt",
|
"name": "firebase/php-jwt",
|
||||||
|
@ -1940,16 +1940,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "intervention/image",
|
"name": "intervention/image",
|
||||||
"version": "3.10.0",
|
"version": "3.10.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Intervention/image.git",
|
"url": "https://github.com/Intervention/image.git",
|
||||||
"reference": "1ddc9a096b3a641958515700e09be910bf03a5bd"
|
"reference": "1c68e5fdf443374f3580c5b920a7f177eccdab85"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Intervention/image/zipball/1ddc9a096b3a641958515700e09be910bf03a5bd",
|
"url": "https://api.github.com/repos/Intervention/image/zipball/1c68e5fdf443374f3580c5b920a7f177eccdab85",
|
||||||
"reference": "1ddc9a096b3a641958515700e09be910bf03a5bd",
|
"reference": "1c68e5fdf443374f3580c5b920a7f177eccdab85",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1996,7 +1996,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/Intervention/image/issues",
|
"issues": "https://github.com/Intervention/image/issues",
|
||||||
"source": "https://github.com/Intervention/image/tree/3.10.0"
|
"source": "https://github.com/Intervention/image/tree/3.10.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2012,7 +2012,7 @@
|
||||||
"type": "ko_fi"
|
"type": "ko_fi"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-12-21T07:41:40+00:00"
|
"time": "2025-01-04T07:31:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "knplabs/knp-snappy",
|
"name": "knplabs/knp-snappy",
|
||||||
|
@ -2547,16 +2547,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/commonmark",
|
"name": "league/commonmark",
|
||||||
"version": "2.6.0",
|
"version": "2.6.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/thephpleague/commonmark.git",
|
"url": "https://github.com/thephpleague/commonmark.git",
|
||||||
"reference": "d150f911e0079e90ae3c106734c93137c184f932"
|
"reference": "d990688c91cedfb69753ffc2512727ec646df2ad"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d150f911e0079e90ae3c106734c93137c184f932",
|
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad",
|
||||||
"reference": "d150f911e0079e90ae3c106734c93137c184f932",
|
"reference": "d990688c91cedfb69753ffc2512727ec646df2ad",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2650,7 +2650,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-12-07T15:34:16+00:00"
|
"time": "2024-12-29T14:10:59+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/config",
|
"name": "league/config",
|
||||||
|
@ -3445,16 +3445,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nesbot/carbon",
|
"name": "nesbot/carbon",
|
||||||
"version": "2.72.5",
|
"version": "2.72.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||||
"reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
|
"reference": "1e9d50601e7035a4c61441a208cb5bed73e108c5"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
|
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/1e9d50601e7035a4c61441a208cb5bed73e108c5",
|
||||||
"reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
|
"reference": "1e9d50601e7035a4c61441a208cb5bed73e108c5",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3474,7 +3474,7 @@
|
||||||
"doctrine/orm": "^2.7 || ^3.0",
|
"doctrine/orm": "^2.7 || ^3.0",
|
||||||
"friendsofphp/php-cs-fixer": "^3.0",
|
"friendsofphp/php-cs-fixer": "^3.0",
|
||||||
"kylekatarnls/multi-tester": "^2.0",
|
"kylekatarnls/multi-tester": "^2.0",
|
||||||
"ondrejmirtes/better-reflection": "*",
|
"ondrejmirtes/better-reflection": "<6",
|
||||||
"phpmd/phpmd": "^2.9",
|
"phpmd/phpmd": "^2.9",
|
||||||
"phpstan/extension-installer": "^1.0",
|
"phpstan/extension-installer": "^1.0",
|
||||||
"phpstan/phpstan": "^0.12.99 || ^1.7.14",
|
"phpstan/phpstan": "^0.12.99 || ^1.7.14",
|
||||||
|
@ -3548,7 +3548,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-06-03T19:18:41+00:00"
|
"time": "2024-12-27T09:28:11+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nette/schema",
|
"name": "nette/schema",
|
||||||
|
@ -3700,16 +3700,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/php-parser",
|
"name": "nikic/php-parser",
|
||||||
"version": "v5.3.1",
|
"version": "v5.4.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||||
"reference": "8eea230464783aa9671db8eea6f8c6ac5285794b"
|
"reference": "447a020a1f875a434d62f2a401f53b82a396e494"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b",
|
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494",
|
||||||
"reference": "8eea230464783aa9671db8eea6f8c6ac5285794b",
|
"reference": "447a020a1f875a434d62f2a401f53b82a396e494",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3752,9 +3752,9 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
||||||
"source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1"
|
"source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0"
|
||||||
},
|
},
|
||||||
"time": "2024-10-08T18:51:32+00:00"
|
"time": "2024-12-30T11:07:19+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nunomaduro/termwind",
|
"name": "nunomaduro/termwind",
|
||||||
|
@ -5285,22 +5285,22 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "socialiteproviders/manager",
|
"name": "socialiteproviders/manager",
|
||||||
"version": "v4.7.0",
|
"version": "v4.8.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/SocialiteProviders/Manager.git",
|
"url": "https://github.com/SocialiteProviders/Manager.git",
|
||||||
"reference": "ab0691b82cec77efd90154c78f1854903455c82f"
|
"reference": "e93acc38f8464cc775a2b8bf09df311d1fdfefcb"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/SocialiteProviders/Manager/zipball/ab0691b82cec77efd90154c78f1854903455c82f",
|
"url": "https://api.github.com/repos/SocialiteProviders/Manager/zipball/e93acc38f8464cc775a2b8bf09df311d1fdfefcb",
|
||||||
"reference": "ab0691b82cec77efd90154c78f1854903455c82f",
|
"reference": "e93acc38f8464cc775a2b8bf09df311d1fdfefcb",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"illuminate/support": "^8.0 || ^9.0 || ^10.0 || ^11.0",
|
"illuminate/support": "^8.0 || ^9.0 || ^10.0 || ^11.0",
|
||||||
"laravel/socialite": "^5.5",
|
"laravel/socialite": "^5.5",
|
||||||
"php": "^8.0"
|
"php": "^8.1"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"mockery/mockery": "^1.2",
|
"mockery/mockery": "^1.2",
|
||||||
|
@ -5355,7 +5355,7 @@
|
||||||
"issues": "https://github.com/socialiteproviders/manager/issues",
|
"issues": "https://github.com/socialiteproviders/manager/issues",
|
||||||
"source": "https://github.com/socialiteproviders/manager"
|
"source": "https://github.com/socialiteproviders/manager"
|
||||||
},
|
},
|
||||||
"time": "2024-11-10T01:56:18+00:00"
|
"time": "2025-01-03T09:40:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "socialiteproviders/microsoft-azure",
|
"name": "socialiteproviders/microsoft-azure",
|
||||||
|
@ -5635,16 +5635,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/console",
|
"name": "symfony/console",
|
||||||
"version": "v6.4.15",
|
"version": "v6.4.17",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/console.git",
|
"url": "https://github.com/symfony/console.git",
|
||||||
"reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd"
|
"reference": "799445db3f15768ecc382ac5699e6da0520a0a04"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
|
"url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04",
|
||||||
"reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
|
"reference": "799445db3f15768ecc382ac5699e6da0520a0a04",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5709,7 +5709,7 @@
|
||||||
"terminal"
|
"terminal"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/console/tree/v6.4.15"
|
"source": "https://github.com/symfony/console/tree/v6.4.17"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -5725,7 +5725,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-06T14:19:14+00:00"
|
"time": "2024-12-07T12:07:30+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/css-selector",
|
"name": "symfony/css-selector",
|
||||||
|
@ -5811,12 +5811,12 @@
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/contracts",
|
||||||
|
"name": "symfony/contracts"
|
||||||
|
},
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.5-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
|
||||||
"thanks": {
|
|
||||||
"name": "symfony/contracts",
|
|
||||||
"url": "https://github.com/symfony/contracts"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -5861,16 +5861,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/error-handler",
|
"name": "symfony/error-handler",
|
||||||
"version": "v6.4.14",
|
"version": "v6.4.17",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/error-handler.git",
|
"url": "https://github.com/symfony/error-handler.git",
|
||||||
"reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9"
|
"reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9",
|
"url": "https://api.github.com/repos/symfony/error-handler/zipball/37ad2380e8c1a8cf62a1200a5c10080b679b446c",
|
||||||
"reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9",
|
"reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5916,7 +5916,7 @@
|
||||||
"description": "Provides tools to manage errors and ease debugging PHP code",
|
"description": "Provides tools to manage errors and ease debugging PHP code",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/error-handler/tree/v6.4.14"
|
"source": "https://github.com/symfony/error-handler/tree/v6.4.17"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -5932,7 +5932,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-05T15:34:40+00:00"
|
"time": "2024-12-06T13:30:51+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher",
|
"name": "symfony/event-dispatcher",
|
||||||
|
@ -6034,12 +6034,12 @@
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/contracts",
|
||||||
|
"name": "symfony/contracts"
|
||||||
|
},
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.5-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
|
||||||
"thanks": {
|
|
||||||
"name": "symfony/contracts",
|
|
||||||
"url": "https://github.com/symfony/contracts"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -6092,16 +6092,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/finder",
|
"name": "symfony/finder",
|
||||||
"version": "v6.4.13",
|
"version": "v6.4.17",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/finder.git",
|
"url": "https://github.com/symfony/finder.git",
|
||||||
"reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958"
|
"reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
|
"url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7",
|
||||||
"reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
|
"reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -6136,7 +6136,7 @@
|
||||||
"description": "Finds files and directories via an intuitive fluent interface",
|
"description": "Finds files and directories via an intuitive fluent interface",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/finder/tree/v6.4.13"
|
"source": "https://github.com/symfony/finder/tree/v6.4.17"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -6152,7 +6152,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-01T08:30:56+00:00"
|
"time": "2024-12-29T13:51:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-foundation",
|
"name": "symfony/http-foundation",
|
||||||
|
@ -6233,16 +6233,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-kernel",
|
"name": "symfony/http-kernel",
|
||||||
"version": "v6.4.16",
|
"version": "v6.4.17",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-kernel.git",
|
"url": "https://github.com/symfony/http-kernel.git",
|
||||||
"reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0"
|
"reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/8838b5b21d807923b893ccbfc2cbeda0f1bc00f0",
|
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/c5647393c5ce11833d13e4b70fff4b571d4ac710",
|
||||||
"reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0",
|
"reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -6327,7 +6327,7 @@
|
||||||
"description": "Provides a structured process for converting a Request into a Response",
|
"description": "Provides a structured process for converting a Request into a Response",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-kernel/tree/v6.4.16"
|
"source": "https://github.com/symfony/http-kernel/tree/v6.4.17"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -6343,20 +6343,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-27T12:49:36+00:00"
|
"time": "2024-12-31T14:49:31+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/mime",
|
"name": "symfony/mime",
|
||||||
"version": "v6.4.13",
|
"version": "v6.4.17",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/mime.git",
|
"url": "https://github.com/symfony/mime.git",
|
||||||
"reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855"
|
"reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/mime/zipball/1de1cf14d99b12c7ebbb850491ec6ae3ed468855",
|
"url": "https://api.github.com/repos/symfony/mime/zipball/ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232",
|
||||||
"reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855",
|
"reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -6412,7 +6412,7 @@
|
||||||
"mime-type"
|
"mime-type"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/mime/tree/v6.4.13"
|
"source": "https://github.com/symfony/mime/tree/v6.4.17"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -6428,7 +6428,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-25T15:07:50+00:00"
|
"time": "2024-12-02T11:09:41+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
|
@ -7234,12 +7234,12 @@
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/contracts",
|
||||||
|
"name": "symfony/contracts"
|
||||||
|
},
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.5-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
|
||||||
"thanks": {
|
|
||||||
"name": "symfony/contracts",
|
|
||||||
"url": "https://github.com/symfony/contracts"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -7493,12 +7493,12 @@
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/contracts",
|
||||||
|
"name": "symfony/contracts"
|
||||||
|
},
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.5-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
|
||||||
"thanks": {
|
|
||||||
"name": "symfony/contracts",
|
|
||||||
"url": "https://github.com/symfony/contracts"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -7713,31 +7713,33 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "tijsverkoyen/css-to-inline-styles",
|
"name": "tijsverkoyen/css-to-inline-styles",
|
||||||
"version": "v2.2.7",
|
"version": "v2.3.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
|
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
|
||||||
"reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb"
|
"reference": "0d72ac1c00084279c1816675284073c5a337c20d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb",
|
"url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d",
|
||||||
"reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb",
|
"reference": "0d72ac1c00084279c1816675284073c5a337c20d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-dom": "*",
|
"ext-dom": "*",
|
||||||
"ext-libxml": "*",
|
"ext-libxml": "*",
|
||||||
"php": "^5.5 || ^7.0 || ^8.0",
|
"php": "^7.4 || ^8.0",
|
||||||
"symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
|
"symfony/css-selector": "^5.4 || ^6.0 || ^7.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
|
"phpstan/phpstan": "^2.0",
|
||||||
|
"phpstan/phpstan-phpunit": "^2.0",
|
||||||
|
"phpunit/phpunit": "^8.5.21 || ^9.5.10"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "2.2.x-dev"
|
"dev-master": "2.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -7760,9 +7762,9 @@
|
||||||
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
|
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
|
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
|
||||||
"source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7"
|
"source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0"
|
||||||
},
|
},
|
||||||
"time": "2023-12-08T13:03:43+00:00"
|
"time": "2024-12-21T16:25:41+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "vlucas/phpdotenv",
|
"name": "vlucas/phpdotenv",
|
||||||
|
@ -8782,16 +8784,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpstan/phpstan",
|
"name": "phpstan/phpstan",
|
||||||
"version": "1.12.13",
|
"version": "1.12.14",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpstan/phpstan.git",
|
"url": "https://github.com/phpstan/phpstan.git",
|
||||||
"reference": "9b469068840cfa031e1deaf2fa1886d00e20680f"
|
"reference": "e73868f809e68fff33be961ad4946e2e43ec9e38"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b469068840cfa031e1deaf2fa1886d00e20680f",
|
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e73868f809e68fff33be961ad4946e2e43ec9e38",
|
||||||
"reference": "9b469068840cfa031e1deaf2fa1886d00e20680f",
|
"reference": "e73868f809e68fff33be961ad4946e2e43ec9e38",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -8836,7 +8838,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-12-17T17:00:20+00:00"
|
"time": "2024-12-31T07:26:13+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
|
@ -10258,17 +10260,15 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "ssddanbrown/asserthtml",
|
"name": "ssddanbrown/asserthtml",
|
||||||
"version": "v3.0.0",
|
"version": "v3.0.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/ssddanbrown/asserthtml.git",
|
"url": "https://codeberg.org/danb/asserthtml",
|
||||||
"reference": "a2cf9394dfc4138b8d9691e1bd128ccc3d8fcc5d"
|
"reference": "31b3035b5533ae80ab16c80d3774dd840dbfd079"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/ssddanbrown/asserthtml/zipball/a2cf9394dfc4138b8d9691e1bd128ccc3d8fcc5d",
|
"url": "https://codeberg.org/api/v1/repos/danb/asserthtml/archive/%prettyVersion%.zip"
|
||||||
"reference": "a2cf9394dfc4138b8d9691e1bd128ccc3d8fcc5d",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-dom": "*",
|
"ext-dom": "*",
|
||||||
|
@ -10299,18 +10299,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "HTML Content Assertions for PHPUnit",
|
"description": "HTML Content Assertions for PHPUnit",
|
||||||
"homepage": "https://github.com/ssddanbrown/asserthtml",
|
"homepage": "https://codeberg.org/danb/asserthtml",
|
||||||
"support": {
|
"time": "2024-12-28T15:15:02+00:00"
|
||||||
"issues": "https://github.com/ssddanbrown/asserthtml/issues",
|
|
||||||
"source": "https://github.com/ssddanbrown/asserthtml/tree/v3.0.0"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/ssddanbrown",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2023-05-11T14:26:12+00:00"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/dom-crawler",
|
"name": "symfony/dom-crawler",
|
||||||
|
|
|
@ -85,12 +85,12 @@ return [
|
||||||
'webhook_delete_notification' => 'Webhook byl úspěšně odstraněn',
|
'webhook_delete_notification' => 'Webhook byl úspěšně odstraněn',
|
||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
'import_create' => 'created import',
|
'import_create' => 'vytvořil/a import',
|
||||||
'import_create_notification' => 'Import successfully uploaded',
|
'import_create_notification' => 'Import byl úspěšně nahrán',
|
||||||
'import_run' => 'updated import',
|
'import_run' => 'aktualizoval/a import',
|
||||||
'import_run_notification' => 'Content successfully imported',
|
'import_run_notification' => 'Obsah byl úspěšně importován',
|
||||||
'import_delete' => 'deleted import',
|
'import_delete' => 'odstranil/a import',
|
||||||
'import_delete_notification' => 'Import successfully deleted',
|
'import_delete_notification' => 'Import byl úspěšně odstraněn',
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
'user_create' => 'vytvořil uživatele',
|
'user_create' => 'vytvořil uživatele',
|
||||||
|
|
|
@ -73,8 +73,8 @@ return [
|
||||||
'toggle_details' => 'Přepnout podrobnosti',
|
'toggle_details' => 'Přepnout podrobnosti',
|
||||||
'toggle_thumbnails' => 'Přepnout náhledy',
|
'toggle_thumbnails' => 'Přepnout náhledy',
|
||||||
'details' => 'Podrobnosti',
|
'details' => 'Podrobnosti',
|
||||||
'grid_view' => 'Zobrazení mřížky',
|
'grid_view' => 'Zobrazit mřížku',
|
||||||
'list_view' => 'Zobrazení seznamu',
|
'list_view' => 'Zobrazit seznam',
|
||||||
'default' => 'Výchozí',
|
'default' => 'Výchozí',
|
||||||
'breadcrumb' => 'Drobečková navigace',
|
'breadcrumb' => 'Drobečková navigace',
|
||||||
'status' => 'Stav',
|
'status' => 'Stav',
|
||||||
|
|
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'O editoru',
|
'about' => 'O editoru',
|
||||||
'about_title' => 'O WYSIWYG editoru',
|
'about_title' => 'O WYSIWYG editoru',
|
||||||
'editor_license' => 'Editor licence a autorská práva',
|
'editor_license' => 'Editor licence a autorská práva',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'Tento editor je vytvořen jako fork :lexicalLink, který je distribuován pod licencí MIT.',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => 'Kompletní údaje o licenci naleznete zde.',
|
||||||
'editor_tiny_license' => 'Tento editor je vytvořen pomocí :tinyLink, který je poskytován pod licencí MIT.',
|
'editor_tiny_license' => 'Tento editor je vytvořen pomocí :tinyLink, který je poskytován pod licencí MIT.',
|
||||||
'editor_tiny_license_link' => 'Podrobnosti o autorských právech a licenci TinyMCE naleznete zde.',
|
'editor_tiny_license_link' => 'Podrobnosti o autorských právech a licenci TinyMCE naleznete zde.',
|
||||||
'save_continue' => 'Uložit stránku a pokračovat',
|
'save_continue' => 'Uložit stránku a pokračovat',
|
||||||
|
|
|
@ -39,30 +39,30 @@ return [
|
||||||
'export_pdf' => 'PDF dokument',
|
'export_pdf' => 'PDF dokument',
|
||||||
'export_text' => 'Textový soubor',
|
'export_text' => 'Textový soubor',
|
||||||
'export_md' => 'Markdown',
|
'export_md' => 'Markdown',
|
||||||
'export_zip' => 'Portable ZIP',
|
'export_zip' => 'Přenosný archiv ZIP',
|
||||||
'default_template' => 'Výchozí šablona stránky',
|
'default_template' => 'Výchozí šablona stránky',
|
||||||
'default_template_explain' => 'Přiřadit šablonu stránky, která bude použita jako výchozí obsah pro všechny nové stránky v této knize. Mějte na paměti, že šablona bude použita pouze v případě, že tvůrce stránek bude mít přístup k těmto vybraným stránkám šablony.',
|
'default_template_explain' => 'Přiřadit šablonu stránky, která bude použita jako výchozí obsah pro všechny nové stránky v této knize. Mějte na paměti, že šablona bude použita pouze v případě, že tvůrce stránek bude mít přístup k těmto vybraným stránkám šablony.',
|
||||||
'default_template_select' => 'Vyberte šablonu stránky',
|
'default_template_select' => 'Vyberte šablonu stránky',
|
||||||
'import' => 'Import',
|
'import' => 'Importovat',
|
||||||
'import_validate' => 'Validate Import',
|
'import_validate' => 'Ověřit import',
|
||||||
'import_desc' => 'Import books, chapters & pages using a portable zip export from the same, or a different, instance. Select a ZIP file to proceed. After the file has been uploaded and validated you\'ll be able to configure & confirm the import in the next view.',
|
'import_desc' => 'Import knih, kapitol a stránek pomocí přenosného archivu ZIP z tohoto nebo jiného webu. Pro pokračování vyberte ZIP soubor. Po nahrání a ověření souboru budete moci v dalším kroku nastavit a potvrdit import.',
|
||||||
'import_zip_select' => 'Select ZIP file to upload',
|
'import_zip_select' => 'Vybrat ZIP soubor k nahrání',
|
||||||
'import_zip_validation_errors' => 'Errors were detected while validating the provided ZIP file:',
|
'import_zip_validation_errors' => 'Při ověřování vybraného souboru ZIP byly zjištěny chyby:',
|
||||||
'import_pending' => 'Pending Imports',
|
'import_pending' => 'Čekající importy',
|
||||||
'import_pending_none' => 'No imports have been started.',
|
'import_pending_none' => 'Žádné importy nebyly spuštěny.',
|
||||||
'import_continue' => 'Continue Import',
|
'import_continue' => 'Pokračovat v importu',
|
||||||
'import_continue_desc' => 'Review the content due to be imported from the uploaded ZIP file. When ready, run the import to add its contents to this system. The uploaded ZIP import file will be automatically removed on successful import.',
|
'import_continue_desc' => 'Zkontrolujte obsah, který má být importován z nahraného souboru. Pokud je vše v pořádku, spusťte import pro přidání obsahu ZIP archivu na tento web. Nahraný soubor ZIP bude automaticky odstraněn po úspěšném importu.',
|
||||||
'import_details' => 'Import Details',
|
'import_details' => 'Obsah importu',
|
||||||
'import_run' => 'Run Import',
|
'import_run' => 'Spustit import',
|
||||||
'import_size' => ':size Import ZIP Size',
|
'import_size' => 'Velikost archivu ZIP: :size',
|
||||||
'import_uploaded_at' => 'Uploaded :relativeTime',
|
'import_uploaded_at' => 'Nahráno :relativeTime',
|
||||||
'import_uploaded_by' => 'Uploaded by',
|
'import_uploaded_by' => 'Nahrál/a',
|
||||||
'import_location' => 'Import Location',
|
'import_location' => 'Cílové umístění',
|
||||||
'import_location_desc' => 'Select a target location for your imported content. You\'ll need the relevant permissions to create within the location you choose.',
|
'import_location_desc' => 'Vyberte cílové umístění pro importovaný obsah. K vytvoření potřebujete příslušná oprávnění.',
|
||||||
'import_delete_confirm' => 'Are you sure you want to delete this import?',
|
'import_delete_confirm' => 'Opravdu chcete tento import odstranit?',
|
||||||
'import_delete_desc' => 'This will delete the uploaded import ZIP file, and cannot be undone.',
|
'import_delete_desc' => 'Potvrzením odstraníte nahraný ZIP soubor. Tento krok nelze vrátit zpět.',
|
||||||
'import_errors' => 'Import Errors',
|
'import_errors' => 'Chyby importu',
|
||||||
'import_errors_desc' => 'The follow errors occurred during the import attempt:',
|
'import_errors_desc' => 'Při pokusu o import došlo k následujícím chybám:',
|
||||||
|
|
||||||
// Permissions and restrictions
|
// Permissions and restrictions
|
||||||
'permissions' => 'Oprávnění',
|
'permissions' => 'Oprávnění',
|
||||||
|
|
|
@ -106,16 +106,16 @@ return [
|
||||||
'back_soon' => 'Brzy bude opět v provozu.',
|
'back_soon' => 'Brzy bude opět v provozu.',
|
||||||
|
|
||||||
// Import
|
// Import
|
||||||
'import_zip_cant_read' => 'Could not read ZIP file.',
|
'import_zip_cant_read' => 'Nelze načíst ZIP soubor.',
|
||||||
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
|
'import_zip_cant_decode_data' => 'Nelze najít a dekódovat data.json v archivu ZIP.',
|
||||||
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
|
'import_zip_no_data' => 'ZIP archiv neobsahuje knihy, kapitoly nebo stránky.',
|
||||||
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
|
'import_validation_failed' => 'Importování ZIP selhalo s chybami:',
|
||||||
'import_zip_failed_notification' => 'Failed to import ZIP file.',
|
'import_zip_failed_notification' => 'Nepodařilo se naimportovat ZIP soubor.',
|
||||||
'import_perms_books' => 'You are lacking the required permissions to create books.',
|
'import_perms_books' => 'Chybí vám požadovaná oprávnění k vytvoření knih.',
|
||||||
'import_perms_chapters' => 'You are lacking the required permissions to create chapters.',
|
'import_perms_chapters' => 'Chybí vám požadovaná oprávnění k vytvoření kapitol.',
|
||||||
'import_perms_pages' => 'You are lacking the required permissions to create pages.',
|
'import_perms_pages' => 'Chybí vám požadovaná oprávnění k vytvoření stránek.',
|
||||||
'import_perms_images' => 'You are lacking the required permissions to create images.',
|
'import_perms_images' => 'Chybí vám požadovaná oprávnění k vytvoření obrázků.',
|
||||||
'import_perms_attachments' => 'You are lacking the required permission to create attachments.',
|
'import_perms_attachments' => 'Chybí vám požadovaná oprávnění k vytvoření příloh.',
|
||||||
|
|
||||||
// API errors
|
// API errors
|
||||||
'api_no_authorization_found' => 'V požadavku nebyl nalezen žádný autorizační token',
|
'api_no_authorization_found' => 'V požadavku nebyl nalezen žádný autorizační token',
|
||||||
|
|
|
@ -162,7 +162,7 @@ return [
|
||||||
'role_access_api' => 'Přístup k systémovému API',
|
'role_access_api' => 'Přístup k systémovému API',
|
||||||
'role_manage_settings' => 'Správa nastavení aplikace',
|
'role_manage_settings' => 'Správa nastavení aplikace',
|
||||||
'role_export_content' => 'Exportovat obsah',
|
'role_export_content' => 'Exportovat obsah',
|
||||||
'role_import_content' => 'Import content',
|
'role_import_content' => 'Importovat obsah',
|
||||||
'role_editor_change' => 'Změnit editor stránek',
|
'role_editor_change' => 'Změnit editor stránek',
|
||||||
'role_notifications' => 'Přijímat a spravovat oznámení',
|
'role_notifications' => 'Přijímat a spravovat oznámení',
|
||||||
'role_asset' => 'Obsahová oprávnění',
|
'role_asset' => 'Obsahová oprávnění',
|
||||||
|
|
|
@ -105,10 +105,10 @@ return [
|
||||||
'url' => 'Formát :attribute je neplatný.',
|
'url' => 'Formát :attribute je neplatný.',
|
||||||
'uploaded' => 'Nahrávání :attribute se nezdařilo.',
|
'uploaded' => 'Nahrávání :attribute se nezdařilo.',
|
||||||
|
|
||||||
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
|
'zip_file' => ':attribute musí odkazovat na soubor v archivu ZIP.',
|
||||||
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
|
'zip_file_mime' => ':attribute musí odkazovat na soubor typu :validTypes, nalezen :foundType.',
|
||||||
'zip_model_expected' => 'Data object expected but ":type" found.',
|
'zip_model_expected' => 'Očekáván datový objekt, ale nalezen „:type“.',
|
||||||
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
|
'zip_unique' => ':attribute musí být jedinečný pro typ objektu v archivu ZIP.',
|
||||||
|
|
||||||
// Custom validation lines
|
// Custom validation lines
|
||||||
'custom' => [
|
'custom' => [
|
||||||
|
|
|
@ -85,12 +85,12 @@ return [
|
||||||
'webhook_delete_notification' => 'Webhook erfolgreich gelöscht',
|
'webhook_delete_notification' => 'Webhook erfolgreich gelöscht',
|
||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
'import_create' => 'created import',
|
'import_create' => 'Import erstellt',
|
||||||
'import_create_notification' => 'Import successfully uploaded',
|
'import_create_notification' => 'Import erfolgreich hochgeladen',
|
||||||
'import_run' => 'updated import',
|
'import_run' => 'Import aktualisiert',
|
||||||
'import_run_notification' => 'Content successfully imported',
|
'import_run_notification' => 'Inhalt erfolgreich importiert',
|
||||||
'import_delete' => 'deleted import',
|
'import_delete' => 'Import gelöscht',
|
||||||
'import_delete_notification' => 'Import successfully deleted',
|
'import_delete_notification' => 'Import erfolgreich gelöscht',
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
'user_create' => 'hat Benutzer erzeugt:',
|
'user_create' => 'hat Benutzer erzeugt:',
|
||||||
|
|
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'Über den Editor',
|
'about' => 'Über den Editor',
|
||||||
'about_title' => 'Über den WYSIWYG-Editor',
|
'about_title' => 'Über den WYSIWYG-Editor',
|
||||||
'editor_license' => 'Editorlizenz & Copyright',
|
'editor_license' => 'Editorlizenz & Copyright',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'Dieser Editor wurde mithilfe von :lexicalLink erstellt, der unter der MIT-Lizenz bereitgestellt wird.',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => 'Vollständige Lizenzdetails finden Sie hier.',
|
||||||
'editor_tiny_license' => 'Dieser Editor wurde mithilfe von :tinyLink erstellt, der unter der MIT-Lizenz bereitgestellt wird.',
|
'editor_tiny_license' => 'Dieser Editor wurde mithilfe von :tinyLink erstellt, der unter der MIT-Lizenz bereitgestellt wird.',
|
||||||
'editor_tiny_license_link' => 'Die Copyright- und Lizenzdetails von TinyMCE finden Sie hier.',
|
'editor_tiny_license_link' => 'Die Copyright- und Lizenzdetails von TinyMCE finden Sie hier.',
|
||||||
'save_continue' => 'Speichern & Fortfahren',
|
'save_continue' => 'Speichern & Fortfahren',
|
||||||
|
|
|
@ -44,25 +44,25 @@ return [
|
||||||
'default_template_explain' => 'Zuweisen einer Seitenvorlage, die als Standardinhalt für alle Seiten verwendet wird, die innerhalb dieses Elements erstellt wurden. Beachten Sie, dass dies nur dann verwendet wird, wenn der Ersteller der Seite Zugriff auf die ausgewählte Vorlagen-Seite hat.',
|
'default_template_explain' => 'Zuweisen einer Seitenvorlage, die als Standardinhalt für alle Seiten verwendet wird, die innerhalb dieses Elements erstellt wurden. Beachten Sie, dass dies nur dann verwendet wird, wenn der Ersteller der Seite Zugriff auf die ausgewählte Vorlagen-Seite hat.',
|
||||||
'default_template_select' => 'Wählen Sie eine Seitenvorlage',
|
'default_template_select' => 'Wählen Sie eine Seitenvorlage',
|
||||||
'import' => 'Import',
|
'import' => 'Import',
|
||||||
'import_validate' => 'Validate Import',
|
'import_validate' => 'Import validieren',
|
||||||
'import_desc' => 'Import books, chapters & pages using a portable zip export from the same, or a different, instance. Select a ZIP file to proceed. After the file has been uploaded and validated you\'ll be able to configure & confirm the import in the next view.',
|
'import_desc' => 'Importieren Sie Bücher, Kapitel & Seiten mit einem "Portable Zip-Export" von der gleichen oder einer anderen Instanz. Wählen Sie eine ZIP-Datei, um fortzufahren. Nachdem die Datei hochgeladen und bestätigt wurde, können Sie den Import in der nächsten Ansicht konfigurieren und bestätigen.',
|
||||||
'import_zip_select' => 'Select ZIP file to upload',
|
'import_zip_select' => 'ZIP-Datei zum Hochladen auswählen',
|
||||||
'import_zip_validation_errors' => 'Errors were detected while validating the provided ZIP file:',
|
'import_zip_validation_errors' => 'Fehler bei der Validierung der angegebenen ZIP-Datei:',
|
||||||
'import_pending' => 'Pending Imports',
|
'import_pending' => 'Ausstehende Importe',
|
||||||
'import_pending_none' => 'No imports have been started.',
|
'import_pending_none' => 'Es wurden keine Importe gestartet.',
|
||||||
'import_continue' => 'Continue Import',
|
'import_continue' => 'Import fortsetzen',
|
||||||
'import_continue_desc' => 'Review the content due to be imported from the uploaded ZIP file. When ready, run the import to add its contents to this system. The uploaded ZIP import file will be automatically removed on successful import.',
|
'import_continue_desc' => 'Überprüfen Sie den Inhalt, der aus der hochgeladenen ZIP-Datei importiert werden soll. Führen Sie den Import aus, um dessen Inhalt zu diesem System hinzuzufügen. Die hochgeladene ZIP-Importdatei wird bei erfolgreichem Import automatisch entfernt.',
|
||||||
'import_details' => 'Import Details',
|
'import_details' => 'Einzelheiten zum Import',
|
||||||
'import_run' => 'Run Import',
|
'import_run' => 'Import starten',
|
||||||
'import_size' => ':size Import ZIP Size',
|
'import_size' => ':size Import ZIP Größe',
|
||||||
'import_uploaded_at' => 'Uploaded :relativeTime',
|
'import_uploaded_at' => 'Hochgeladen :relativeTime',
|
||||||
'import_uploaded_by' => 'Uploaded by',
|
'import_uploaded_by' => 'Hochgeladen von',
|
||||||
'import_location' => 'Import Location',
|
'import_location' => 'Import Ort',
|
||||||
'import_location_desc' => 'Select a target location for your imported content. You\'ll need the relevant permissions to create within the location you choose.',
|
'import_location_desc' => 'Wählen Sie einen Zielort für Ihren importierten Inhalt. Sie benötigen die entsprechenden Berechtigungen, um innerhalb des gewünschten Standortes zu erstellen.',
|
||||||
'import_delete_confirm' => 'Are you sure you want to delete this import?',
|
'import_delete_confirm' => 'Sind Sie sicher, dass Sie diesen Import löschen möchten?',
|
||||||
'import_delete_desc' => 'This will delete the uploaded import ZIP file, and cannot be undone.',
|
'import_delete_desc' => 'Dies löscht die hochgeladene ZIP-Datei und kann nicht rückgängig gemacht werden.',
|
||||||
'import_errors' => 'Import Errors',
|
'import_errors' => 'Importfehler',
|
||||||
'import_errors_desc' => 'The follow errors occurred during the import attempt:',
|
'import_errors_desc' => 'Die folgenden Fehler sind während des Importversuchs aufgetreten:',
|
||||||
|
|
||||||
// Permissions and restrictions
|
// Permissions and restrictions
|
||||||
'permissions' => 'Berechtigungen',
|
'permissions' => 'Berechtigungen',
|
||||||
|
@ -245,7 +245,7 @@ return [
|
||||||
'pages_edit_switch_to_markdown_clean' => '(gesäuberter Output)',
|
'pages_edit_switch_to_markdown_clean' => '(gesäuberter Output)',
|
||||||
'pages_edit_switch_to_markdown_stable' => '(html beibehalten)',
|
'pages_edit_switch_to_markdown_stable' => '(html beibehalten)',
|
||||||
'pages_edit_switch_to_wysiwyg' => 'Wechseln Sie zum WYSIWYG-Editor',
|
'pages_edit_switch_to_wysiwyg' => 'Wechseln Sie zum WYSIWYG-Editor',
|
||||||
'pages_edit_switch_to_new_wysiwyg' => 'Switch to new WYSIWYG',
|
'pages_edit_switch_to_new_wysiwyg' => 'Zu neuem WYSIWYG wechseln',
|
||||||
'pages_edit_switch_to_new_wysiwyg_desc' => '(In Alpha Testing)',
|
'pages_edit_switch_to_new_wysiwyg_desc' => '(In Alpha Testing)',
|
||||||
'pages_edit_set_changelog' => 'Änderungsprotokoll hinzufügen',
|
'pages_edit_set_changelog' => 'Änderungsprotokoll hinzufügen',
|
||||||
'pages_edit_enter_changelog_desc' => 'Bitte geben Sie eine kurze Zusammenfassung Ihrer Änderungen ein',
|
'pages_edit_enter_changelog_desc' => 'Bitte geben Sie eine kurze Zusammenfassung Ihrer Änderungen ein',
|
||||||
|
|
|
@ -78,7 +78,7 @@ return [
|
||||||
// Users
|
// Users
|
||||||
'users_cannot_delete_only_admin' => 'Sie können den einzigen Administrator nicht löschen',
|
'users_cannot_delete_only_admin' => 'Sie können den einzigen Administrator nicht löschen',
|
||||||
'users_cannot_delete_guest' => 'Sie können den Gast-Benutzer nicht löschen',
|
'users_cannot_delete_guest' => 'Sie können den Gast-Benutzer nicht löschen',
|
||||||
'users_could_not_send_invite' => 'Could not create user since invite email failed to send',
|
'users_could_not_send_invite' => 'Benutzer konnte nicht erstellt werden, da die Einladungs-E-Mail nicht gesendet wurde',
|
||||||
|
|
||||||
// Roles
|
// Roles
|
||||||
'role_cannot_be_edited' => 'Diese Rolle kann nicht bearbeitet werden',
|
'role_cannot_be_edited' => 'Diese Rolle kann nicht bearbeitet werden',
|
||||||
|
@ -106,16 +106,16 @@ return [
|
||||||
'back_soon' => 'Wir werden so schnell wie möglich wieder online sein.',
|
'back_soon' => 'Wir werden so schnell wie möglich wieder online sein.',
|
||||||
|
|
||||||
// Import
|
// Import
|
||||||
'import_zip_cant_read' => 'Could not read ZIP file.',
|
'import_zip_cant_read' => 'ZIP-Datei konnte nicht gelesen werden.',
|
||||||
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
|
'import_zip_cant_decode_data' => 'ZIP data.json konnte nicht gefunden und dekodiert werden.',
|
||||||
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
|
'import_zip_no_data' => 'ZIP-Datei Daten haben kein erwartetes Buch, Kapitel oder Seiteninhalt.',
|
||||||
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
|
'import_validation_failed' => 'ZIP Import konnte mit Fehlern nicht validiert werden:',
|
||||||
'import_zip_failed_notification' => 'Failed to import ZIP file.',
|
'import_zip_failed_notification' => 'Importieren der ZIP-Datei fehlgeschlagen.',
|
||||||
'import_perms_books' => 'You are lacking the required permissions to create books.',
|
'import_perms_books' => 'Ihnen fehlt die erforderliche Berechtigung, um Bücher zu erstellen.',
|
||||||
'import_perms_chapters' => 'You are lacking the required permissions to create chapters.',
|
'import_perms_chapters' => 'Ihnen fehlt die erforderliche Berechtigung, um Bücher zu erstellen.',
|
||||||
'import_perms_pages' => 'You are lacking the required permissions to create pages.',
|
'import_perms_pages' => 'Ihnen fehlt die erforderliche Berechtigung, um Seiten zu erstellen.',
|
||||||
'import_perms_images' => 'You are lacking the required permissions to create images.',
|
'import_perms_images' => 'Ihnen fehlt die erforderliche Berechtigung, um Bilder zu erstellen.',
|
||||||
'import_perms_attachments' => 'You are lacking the required permission to create attachments.',
|
'import_perms_attachments' => 'Ihnen fehlt die erforderliche Berechtigung, um Anhänge zu erstellen.',
|
||||||
|
|
||||||
// API errors
|
// API errors
|
||||||
'api_no_authorization_found' => 'Kein Autorisierungstoken für die Anfrage gefunden',
|
'api_no_authorization_found' => 'Kein Autorisierungstoken für die Anfrage gefunden',
|
||||||
|
|
|
@ -163,7 +163,7 @@ Hinweis: Benutzer können ihre E-Mail-Adresse nach erfolgreicher Registrierung
|
||||||
'role_access_api' => 'Systemzugriffs-API',
|
'role_access_api' => 'Systemzugriffs-API',
|
||||||
'role_manage_settings' => 'Globaleinstellungen verwalten',
|
'role_manage_settings' => 'Globaleinstellungen verwalten',
|
||||||
'role_export_content' => 'Inhalt exportieren',
|
'role_export_content' => 'Inhalt exportieren',
|
||||||
'role_import_content' => 'Import content',
|
'role_import_content' => 'Inhalt importieren',
|
||||||
'role_editor_change' => 'Seiten-Editor ändern',
|
'role_editor_change' => 'Seiten-Editor ändern',
|
||||||
'role_notifications' => 'Empfangen und Verwalten von Benachrichtigungen',
|
'role_notifications' => 'Empfangen und Verwalten von Benachrichtigungen',
|
||||||
'role_asset' => 'Berechtigungen',
|
'role_asset' => 'Berechtigungen',
|
||||||
|
|
|
@ -105,10 +105,10 @@ return [
|
||||||
'url' => ':attribute ist kein valides Format.',
|
'url' => ':attribute ist kein valides Format.',
|
||||||
'uploaded' => 'Die Datei konnte nicht hochgeladen werden. Der Server akzeptiert möglicherweise keine Dateien dieser Größe.',
|
'uploaded' => 'Die Datei konnte nicht hochgeladen werden. Der Server akzeptiert möglicherweise keine Dateien dieser Größe.',
|
||||||
|
|
||||||
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
|
'zip_file' => ':attribute muss eine Datei innerhalb des ZIP referenzieren.',
|
||||||
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
|
'zip_file_mime' => ':attribute muss eine Datei des Typs :validType referenzieren, gefunden :foundType.',
|
||||||
'zip_model_expected' => 'Data object expected but ":type" found.',
|
'zip_model_expected' => 'Datenobjekt erwartet, aber ":type" gefunden.',
|
||||||
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
|
'zip_unique' => ':attribute muss für den Objekttyp innerhalb des ZIP eindeutig sein.',
|
||||||
|
|
||||||
// Custom validation lines
|
// Custom validation lines
|
||||||
'custom' => [
|
'custom' => [
|
||||||
|
|
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'Über den Editor',
|
'about' => 'Über den Editor',
|
||||||
'about_title' => 'Über den WYSIWYG Editor',
|
'about_title' => 'Über den WYSIWYG Editor',
|
||||||
'editor_license' => 'Editorlizenz & Copyright',
|
'editor_license' => 'Editorlizenz & Copyright',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'Dieser Editor wurde mithilfe von :lexicalLink erstellt, der unter der MIT-Lizenz bereitgestellt wird.',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => 'Vollständige Lizenzdetails findest du hier.',
|
||||||
'editor_tiny_license' => 'Dieser Editor wurde mit :tinyLink erstellt, das unter der MIT-Lizenz zur Verfügung gestellt wird.',
|
'editor_tiny_license' => 'Dieser Editor wurde mit :tinyLink erstellt, das unter der MIT-Lizenz zur Verfügung gestellt wird.',
|
||||||
'editor_tiny_license_link' => 'Die Copyright- und Lizenzdetails von TinyMCE findest du hier.',
|
'editor_tiny_license_link' => 'Die Copyright- und Lizenzdetails von TinyMCE findest du hier.',
|
||||||
'save_continue' => 'Seite speichern & fortfahren',
|
'save_continue' => 'Seite speichern & fortfahren',
|
||||||
|
|
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'Acerca del editor',
|
'about' => 'Acerca del editor',
|
||||||
'about_title' => 'Acerca del editor WYSIWYG',
|
'about_title' => 'Acerca del editor WYSIWYG',
|
||||||
'editor_license' => 'Licencia del editor y derechos de autor',
|
'editor_license' => 'Licencia del editor y derechos de autor',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'Este editor está construido como una bifurcación de :lexicalLink que se distribuye bajo la licencia MIT.',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => 'Los detalles completos de la licencia se pueden encontrar aquí.',
|
||||||
'editor_tiny_license' => 'Este editor se construye usando :tinyLink que se proporciona bajo la licencia MIT.',
|
'editor_tiny_license' => 'Este editor se construye usando :tinyLink que se proporciona bajo la licencia MIT.',
|
||||||
'editor_tiny_license_link' => 'Aquí encontrará los detalles de los derechos de autor y la licencia de TinyMCE.',
|
'editor_tiny_license_link' => 'Aquí encontrará los detalles de los derechos de autor y la licencia de TinyMCE.',
|
||||||
'save_continue' => 'Guardar Página y Continuar',
|
'save_continue' => 'Guardar Página y Continuar',
|
||||||
|
|
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'Acerca del editor',
|
'about' => 'Acerca del editor',
|
||||||
'about_title' => 'Acerca del editor WYSIWYG',
|
'about_title' => 'Acerca del editor WYSIWYG',
|
||||||
'editor_license' => 'Licencia del editor y derechos de autor',
|
'editor_license' => 'Licencia del editor y derechos de autor',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'Este editor está construido como una bifurcación de :lexicalLink que se distribuye bajo la licencia MIT.',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => 'Los detalles completos de la licencia se pueden encontrar aquí.',
|
||||||
'editor_tiny_license' => 'Este editor se construye usando :tinyLink provisto bajo la licencia MIT.',
|
'editor_tiny_license' => 'Este editor se construye usando :tinyLink provisto bajo la licencia MIT.',
|
||||||
'editor_tiny_license_link' => 'Aquí se muestran los detalles de los derechos de autor y la licencia de TinyMCE.',
|
'editor_tiny_license_link' => 'Aquí se muestran los detalles de los derechos de autor y la licencia de TinyMCE.',
|
||||||
'save_continue' => 'Guardar Página y Continuar',
|
'save_continue' => 'Guardar Página y Continuar',
|
||||||
|
|
|
@ -85,12 +85,12 @@ return [
|
||||||
'webhook_delete_notification' => 'Webhook eliminato con successo',
|
'webhook_delete_notification' => 'Webhook eliminato con successo',
|
||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
'import_create' => 'created import',
|
'import_create' => 'importazione creata',
|
||||||
'import_create_notification' => 'Import successfully uploaded',
|
'import_create_notification' => 'Importazione caricata con successo',
|
||||||
'import_run' => 'updated import',
|
'import_run' => 'importazione aggiornata',
|
||||||
'import_run_notification' => 'Content successfully imported',
|
'import_run_notification' => 'Contenuto importato con successo',
|
||||||
'import_delete' => 'deleted import',
|
'import_delete' => 'importazione cancellata',
|
||||||
'import_delete_notification' => 'Import successfully deleted',
|
'import_delete_notification' => 'Importazione eliminata con successo',
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
'user_create' => 'ha creato un utente',
|
'user_create' => 'ha creato un utente',
|
||||||
|
|
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'Informazioni sull\'editor',
|
'about' => 'Informazioni sull\'editor',
|
||||||
'about_title' => 'Informazioni sull\'editor di WYSIWYG',
|
'about_title' => 'Informazioni sull\'editor di WYSIWYG',
|
||||||
'editor_license' => 'Licenza e copyright dell\'editor',
|
'editor_license' => 'Licenza e copyright dell\'editor',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'Questo editor è stato creato come fork di :lexicalLink ed è distribuito sotto la licenza MIT.',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => 'I dettagli della licenza sono disponibili qui.',
|
||||||
'editor_tiny_license' => 'Questo editor è realizzato usando :tinyLink che è fornito sotto la licenza MIT.',
|
'editor_tiny_license' => 'Questo editor è realizzato usando :tinyLink che è fornito sotto la licenza MIT.',
|
||||||
'editor_tiny_license_link' => 'I dettagli del copyright e della licenza di TinyMCE sono disponibili qui.',
|
'editor_tiny_license_link' => 'I dettagli del copyright e della licenza di TinyMCE sono disponibili qui.',
|
||||||
'save_continue' => 'Salva pagina e continua',
|
'save_continue' => 'Salva pagina e continua',
|
||||||
|
|
|
@ -39,30 +39,30 @@ return [
|
||||||
'export_pdf' => 'File PDF',
|
'export_pdf' => 'File PDF',
|
||||||
'export_text' => 'File di testo',
|
'export_text' => 'File di testo',
|
||||||
'export_md' => 'File Markdown',
|
'export_md' => 'File Markdown',
|
||||||
'export_zip' => 'Portable ZIP',
|
'export_zip' => 'ZIP Portatile',
|
||||||
'default_template' => 'Modello di pagina predefinito',
|
'default_template' => 'Modello di pagina predefinito',
|
||||||
'default_template_explain' => 'Assegna un modello di pagina che sarà usato come contenuto predefinito per tutte le pagine create in questo elemento. Tieni presente che potrà essere utilizzato solo se il creatore della pagina ha accesso alla pagina del modello scelto.',
|
'default_template_explain' => 'Assegna un modello di pagina che sarà usato come contenuto predefinito per tutte le pagine create in questo elemento. Tieni presente che potrà essere utilizzato solo se il creatore della pagina ha accesso alla pagina del modello scelto.',
|
||||||
'default_template_select' => 'Seleziona una pagina modello',
|
'default_template_select' => 'Seleziona una pagina modello',
|
||||||
'import' => 'Import',
|
'import' => 'Importa',
|
||||||
'import_validate' => 'Validate Import',
|
'import_validate' => 'Convalida Importazione',
|
||||||
'import_desc' => 'Import books, chapters & pages using a portable zip export from the same, or a different, instance. Select a ZIP file to proceed. After the file has been uploaded and validated you\'ll be able to configure & confirm the import in the next view.',
|
'import_desc' => 'Importa libri, capitoli e pagine utilizzando un\'esportazione zip portatile dalla stessa istanza o da un\'istanza diversa. Selezionare un file ZIP per procedere. Dopo che il file è stato caricato e convalidato, sarà possibile configurare e confermare l\'importazione nella vista successiva.',
|
||||||
'import_zip_select' => 'Select ZIP file to upload',
|
'import_zip_select' => 'Seleziona il file ZIP da caricare',
|
||||||
'import_zip_validation_errors' => 'Errors were detected while validating the provided ZIP file:',
|
'import_zip_validation_errors' => 'Sono stati rilevati errori durante la convalida del file ZIP fornito:',
|
||||||
'import_pending' => 'Pending Imports',
|
'import_pending' => 'Importazioni In Attesa',
|
||||||
'import_pending_none' => 'No imports have been started.',
|
'import_pending_none' => 'Non sono state avviate importazioni.',
|
||||||
'import_continue' => 'Continue Import',
|
'import_continue' => 'Continua l\'importazione',
|
||||||
'import_continue_desc' => 'Review the content due to be imported from the uploaded ZIP file. When ready, run the import to add its contents to this system. The uploaded ZIP import file will be automatically removed on successful import.',
|
'import_continue_desc' => 'Esaminare il contenuto da importare dal file ZIP caricato. Quando è pronto, eseguire l\'importazione per aggiungere i contenuti al sistema. Il file di importazione ZIP caricato verrà automaticamente rimosso quando l\'importazione sarà riuscita.',
|
||||||
'import_details' => 'Import Details',
|
'import_details' => 'Dettagli dell\'importazione',
|
||||||
'import_run' => 'Run Import',
|
'import_run' => 'Esegui Importazione',
|
||||||
'import_size' => ':size Import ZIP Size',
|
'import_size' => 'Dimensione dello ZIP importato :size',
|
||||||
'import_uploaded_at' => 'Uploaded :relativeTime',
|
'import_uploaded_at' => 'Caricato il :relativeTime',
|
||||||
'import_uploaded_by' => 'Uploaded by',
|
'import_uploaded_by' => 'Caricata da',
|
||||||
'import_location' => 'Import Location',
|
'import_location' => 'Posizione Di Importazione',
|
||||||
'import_location_desc' => 'Select a target location for your imported content. You\'ll need the relevant permissions to create within the location you choose.',
|
'import_location_desc' => 'Selezionare una posizione di destinazione per i contenuti importati. È necessario disporre delle autorizzazioni adeguate per creare all\'interno della posizione scelta.',
|
||||||
'import_delete_confirm' => 'Are you sure you want to delete this import?',
|
'import_delete_confirm' => 'Sei sicuro di voler eliminare questa importazione?',
|
||||||
'import_delete_desc' => 'This will delete the uploaded import ZIP file, and cannot be undone.',
|
'import_delete_desc' => 'Questa operazione cancella il file ZIP di importazione caricato e non può essere annullata.',
|
||||||
'import_errors' => 'Import Errors',
|
'import_errors' => 'Errori di importazione',
|
||||||
'import_errors_desc' => 'The follow errors occurred during the import attempt:',
|
'import_errors_desc' => 'Gli seguenti errori si sono verificati durante il tentativo di importazione:',
|
||||||
|
|
||||||
// Permissions and restrictions
|
// Permissions and restrictions
|
||||||
'permissions' => 'Permessi',
|
'permissions' => 'Permessi',
|
||||||
|
|
|
@ -106,16 +106,16 @@ return [
|
||||||
'back_soon' => 'Tornerà presto online.',
|
'back_soon' => 'Tornerà presto online.',
|
||||||
|
|
||||||
// Import
|
// Import
|
||||||
'import_zip_cant_read' => 'Could not read ZIP file.',
|
'import_zip_cant_read' => 'Impossibile leggere il file ZIP.',
|
||||||
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
|
'import_zip_cant_decode_data' => 'Impossibile trovare e decodificare il contenuto ZIP data.json.',
|
||||||
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
|
'import_zip_no_data' => 'I dati del file ZIP non hanno il contenuto previsto di libri, capitoli o pagine.',
|
||||||
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
|
'import_validation_failed' => 'L\'importazione ZIP non è stata convalidata con errori:',
|
||||||
'import_zip_failed_notification' => 'Failed to import ZIP file.',
|
'import_zip_failed_notification' => 'Impossibile importare il file ZIP.',
|
||||||
'import_perms_books' => 'You are lacking the required permissions to create books.',
|
'import_perms_books' => 'Non hai i permessi necessari per creare libri.',
|
||||||
'import_perms_chapters' => 'You are lacking the required permissions to create chapters.',
|
'import_perms_chapters' => 'Non hai i permessi necessari per creare capitoli.',
|
||||||
'import_perms_pages' => 'You are lacking the required permissions to create pages.',
|
'import_perms_pages' => 'Non hai i permessi necessari per creare pagine.',
|
||||||
'import_perms_images' => 'You are lacking the required permissions to create images.',
|
'import_perms_images' => 'Non hai i permessi necessari per creare immagini.',
|
||||||
'import_perms_attachments' => 'You are lacking the required permission to create attachments.',
|
'import_perms_attachments' => 'Non hai il permesso necessario per creare allegati.',
|
||||||
|
|
||||||
// API errors
|
// API errors
|
||||||
'api_no_authorization_found' => 'Nessun token di autorizzazione trovato nella richiesta',
|
'api_no_authorization_found' => 'Nessun token di autorizzazione trovato nella richiesta',
|
||||||
|
|
|
@ -162,7 +162,7 @@ return [
|
||||||
'role_access_api' => 'Accedere alle API di sistema',
|
'role_access_api' => 'Accedere alle API di sistema',
|
||||||
'role_manage_settings' => 'Gestire impostazioni app',
|
'role_manage_settings' => 'Gestire impostazioni app',
|
||||||
'role_export_content' => 'Esportare contenuto',
|
'role_export_content' => 'Esportare contenuto',
|
||||||
'role_import_content' => 'Import content',
|
'role_import_content' => 'Importa contenuto',
|
||||||
'role_editor_change' => 'Cambiare editor di pagina',
|
'role_editor_change' => 'Cambiare editor di pagina',
|
||||||
'role_notifications' => 'Ricevere e gestire le notifiche',
|
'role_notifications' => 'Ricevere e gestire le notifiche',
|
||||||
'role_asset' => 'Permessi entità',
|
'role_asset' => 'Permessi entità',
|
||||||
|
|
|
@ -105,10 +105,10 @@ return [
|
||||||
'url' => 'Il formato :attribute non è valido.',
|
'url' => 'Il formato :attribute non è valido.',
|
||||||
'uploaded' => 'Il file non può essere caricato. Il server potrebbe non accettare file di questa dimensione.',
|
'uploaded' => 'Il file non può essere caricato. Il server potrebbe non accettare file di questa dimensione.',
|
||||||
|
|
||||||
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
|
'zip_file' => 'L\'attributo :attribute deve fare riferimento a un file all\'interno dello ZIP.',
|
||||||
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
|
'zip_file_mime' => 'Il campo :attribute deve fare riferimento a un file di tipo :validTypes, trovato :foundType.',
|
||||||
'zip_model_expected' => 'Data object expected but ":type" found.',
|
'zip_model_expected' => 'Oggetto dati atteso ma ":type" trovato.',
|
||||||
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
|
'zip_unique' => 'L\'attributo :attribute deve essere univoco per il tipo di oggetto all\'interno dello ZIP.',
|
||||||
|
|
||||||
// Custom validation lines
|
// Custom validation lines
|
||||||
'custom' => [
|
'custom' => [
|
||||||
|
|
|
@ -86,11 +86,11 @@ return [
|
||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
'import_create' => 'created import',
|
'import_create' => 'created import',
|
||||||
'import_create_notification' => 'Import successfully uploaded',
|
'import_create_notification' => 'インポートファイルが正常にアップロードされました',
|
||||||
'import_run' => 'updated import',
|
'import_run' => 'updated import',
|
||||||
'import_run_notification' => 'Content successfully imported',
|
'import_run_notification' => 'コンテンツが正常にインポートされました',
|
||||||
'import_delete' => 'deleted import',
|
'import_delete' => 'deleted import',
|
||||||
'import_delete_notification' => 'Import successfully deleted',
|
'import_delete_notification' => 'インポートファイルが正常に削除されました',
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
'user_create' => 'がユーザを作成',
|
'user_create' => 'がユーザを作成',
|
||||||
|
|
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'エディタについて',
|
'about' => 'エディタについて',
|
||||||
'about_title' => 'WYSIWYGエディタについて',
|
'about_title' => 'WYSIWYGエディタについて',
|
||||||
'editor_license' => 'エディタのライセンスと著作権',
|
'editor_license' => 'エディタのライセンスと著作権',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'このエディタはMITライセンスの下で配布されている :lexicalLink のフォークとして構築されています。',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => '完全なライセンスの詳細はこちらをご覧ください。',
|
||||||
'editor_tiny_license' => 'このエディタはMITライセンスの下で提供される:tinyLinkを利用して構築されています。',
|
'editor_tiny_license' => 'このエディタはMITライセンスの下で提供される:tinyLinkを利用して構築されています。',
|
||||||
'editor_tiny_license_link' => 'TinyMCEの著作権およびライセンスの詳細は、こちらをご覧ください。',
|
'editor_tiny_license_link' => 'TinyMCEの著作権およびライセンスの詳細は、こちらをご覧ください。',
|
||||||
'save_continue' => 'ページを保存して続行',
|
'save_continue' => 'ページを保存して続行',
|
||||||
|
|
|
@ -39,30 +39,30 @@ return [
|
||||||
'export_pdf' => 'PDF',
|
'export_pdf' => 'PDF',
|
||||||
'export_text' => 'テキストファイル',
|
'export_text' => 'テキストファイル',
|
||||||
'export_md' => 'Markdown',
|
'export_md' => 'Markdown',
|
||||||
'export_zip' => 'Portable ZIP',
|
'export_zip' => 'ポータブルZIP',
|
||||||
'default_template' => 'デフォルトページテンプレート',
|
'default_template' => 'デフォルトページテンプレート',
|
||||||
'default_template_explain' => 'このアイテム内に新しいページを作成する際にデフォルトコンテンツとして使用されるページテンプレートを割り当てます。これはページ作成者が選択したテンプレートページへのアクセス権を持つ場合にのみ使用されることに注意してください。',
|
'default_template_explain' => 'このアイテム内に新しいページを作成する際にデフォルトコンテンツとして使用されるページテンプレートを割り当てます。これはページ作成者が選択したテンプレートページへのアクセス権を持つ場合にのみ使用されることに注意してください。',
|
||||||
'default_template_select' => 'テンプレートページを選択',
|
'default_template_select' => 'テンプレートページを選択',
|
||||||
'import' => 'Import',
|
'import' => 'インポート',
|
||||||
'import_validate' => 'Validate Import',
|
'import_validate' => 'インポートの検証',
|
||||||
'import_desc' => 'Import books, chapters & pages using a portable zip export from the same, or a different, instance. Select a ZIP file to proceed. After the file has been uploaded and validated you\'ll be able to configure & confirm the import in the next view.',
|
'import_desc' => 'ポータブルzipエクスポートファイルを使用して、同一または別のインスタンスからブック、チャプタ、ページをインポートします。続行するにはZIPファイルを選択します。 ファイルをアップロードすると検証が行われ、次のビューでインポートの設定と確認ができます。',
|
||||||
'import_zip_select' => 'Select ZIP file to upload',
|
'import_zip_select' => 'アップロードするZIPファイルの選択',
|
||||||
'import_zip_validation_errors' => 'Errors were detected while validating the provided ZIP file:',
|
'import_zip_validation_errors' => '指定された ZIP ファイルの検証中にエラーが検出されました:',
|
||||||
'import_pending' => 'Pending Imports',
|
'import_pending' => '保留中のインポート',
|
||||||
'import_pending_none' => 'No imports have been started.',
|
'import_pending_none' => 'インポートは行われていません。',
|
||||||
'import_continue' => 'Continue Import',
|
'import_continue' => 'インポートを続行',
|
||||||
'import_continue_desc' => 'Review the content due to be imported from the uploaded ZIP file. When ready, run the import to add its contents to this system. The uploaded ZIP import file will be automatically removed on successful import.',
|
'import_continue_desc' => 'アップロードされたZIPファイルからインポートされるコンテンツを確認してください。準備ができたらインポートを実行してこのシステムにコンテンツを追加します。 アップロードされたZIPファイルは、インポートが成功すると自動的に削除されます。',
|
||||||
'import_details' => 'Import Details',
|
'import_details' => 'インポートの詳細',
|
||||||
'import_run' => 'Run Import',
|
'import_run' => 'インポートを実行',
|
||||||
'import_size' => ':size Import ZIP Size',
|
'import_size' => 'インポートZIPサイズ: :size',
|
||||||
'import_uploaded_at' => 'Uploaded :relativeTime',
|
'import_uploaded_at' => 'アップロード: :relativeTime',
|
||||||
'import_uploaded_by' => 'Uploaded by',
|
'import_uploaded_by' => 'アップロードユーザ:',
|
||||||
'import_location' => 'Import Location',
|
'import_location' => 'インポートの場所',
|
||||||
'import_location_desc' => 'Select a target location for your imported content. You\'ll need the relevant permissions to create within the location you choose.',
|
'import_location_desc' => 'コンテンツをインポートする場所を選択します。選択した場所に作成するための権限を持つ必要があります。',
|
||||||
'import_delete_confirm' => 'Are you sure you want to delete this import?',
|
'import_delete_confirm' => 'このインポートを削除してもよろしいですか?',
|
||||||
'import_delete_desc' => 'This will delete the uploaded import ZIP file, and cannot be undone.',
|
'import_delete_desc' => 'アップロードされたインポートZIPファイルは削除され、元に戻すことはできません。',
|
||||||
'import_errors' => 'Import Errors',
|
'import_errors' => 'インポートエラー',
|
||||||
'import_errors_desc' => 'The follow errors occurred during the import attempt:',
|
'import_errors_desc' => 'インポート中に次のエラーが発生しました:',
|
||||||
|
|
||||||
// Permissions and restrictions
|
// Permissions and restrictions
|
||||||
'permissions' => '権限',
|
'permissions' => '権限',
|
||||||
|
|
|
@ -106,16 +106,16 @@ return [
|
||||||
'back_soon' => '回復までしばらくお待ちください。',
|
'back_soon' => '回復までしばらくお待ちください。',
|
||||||
|
|
||||||
// Import
|
// Import
|
||||||
'import_zip_cant_read' => 'Could not read ZIP file.',
|
'import_zip_cant_read' => 'ZIPファイルを読み込めません。',
|
||||||
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
|
'import_zip_cant_decode_data' => 'ZIPファイル内に data.json が見つからないかデコードできませんでした。',
|
||||||
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
|
'import_zip_no_data' => 'ZIPファイルのデータにブック、チャプター、またはページコンテンツがありません。',
|
||||||
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
|
'import_validation_failed' => 'エラーによりインポートZIPの検証に失敗しました:',
|
||||||
'import_zip_failed_notification' => 'Failed to import ZIP file.',
|
'import_zip_failed_notification' => 'ZIP ファイルのインポートに失敗しました。',
|
||||||
'import_perms_books' => 'You are lacking the required permissions to create books.',
|
'import_perms_books' => 'ブックを作成するために必要な権限がありません。',
|
||||||
'import_perms_chapters' => 'You are lacking the required permissions to create chapters.',
|
'import_perms_chapters' => 'チャプタを作成するために必要な権限がありません。',
|
||||||
'import_perms_pages' => 'You are lacking the required permissions to create pages.',
|
'import_perms_pages' => 'ページを作成するために必要な権限がありません。',
|
||||||
'import_perms_images' => 'You are lacking the required permissions to create images.',
|
'import_perms_images' => '画像を作成するために必要な権限がありません。',
|
||||||
'import_perms_attachments' => 'You are lacking the required permission to create attachments.',
|
'import_perms_attachments' => '添付ファイルを作成するために必要な権限がありません。',
|
||||||
|
|
||||||
// API errors
|
// API errors
|
||||||
'api_no_authorization_found' => 'リクエストに認証トークンが見つかりません',
|
'api_no_authorization_found' => 'リクエストに認証トークンが見つかりません',
|
||||||
|
|
|
@ -162,7 +162,7 @@ return [
|
||||||
'role_access_api' => 'システムのAPIへのアクセス',
|
'role_access_api' => 'システムのAPIへのアクセス',
|
||||||
'role_manage_settings' => 'アプリケーション設定の管理',
|
'role_manage_settings' => 'アプリケーション設定の管理',
|
||||||
'role_export_content' => 'コンテンツのエクスポート',
|
'role_export_content' => 'コンテンツのエクスポート',
|
||||||
'role_import_content' => 'Import content',
|
'role_import_content' => 'コンテンツのインポート',
|
||||||
'role_editor_change' => 'ページエディタの変更',
|
'role_editor_change' => 'ページエディタの変更',
|
||||||
'role_notifications' => '通知の受信と管理',
|
'role_notifications' => '通知の受信と管理',
|
||||||
'role_asset' => 'アセット権限',
|
'role_asset' => 'アセット権限',
|
||||||
|
|
|
@ -105,10 +105,10 @@ return [
|
||||||
'url' => ':attributeのフォーマットは不正です。',
|
'url' => ':attributeのフォーマットは不正です。',
|
||||||
'uploaded' => 'ファイルをアップロードできませんでした。サーバーがこのサイズのファイルを受け付けていない可能性があります。',
|
'uploaded' => 'ファイルをアップロードできませんでした。サーバーがこのサイズのファイルを受け付けていない可能性があります。',
|
||||||
|
|
||||||
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
|
'zip_file' => ':attribute はZIP 内のファイルを参照する必要があります。',
|
||||||
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
|
'zip_file_mime' => ':attribute は種別 :validType のファイルを参照する必要がありますが、種別 :foundType となっています。',
|
||||||
'zip_model_expected' => 'Data object expected but ":type" found.',
|
'zip_model_expected' => 'データオブジェクトが期待されますが、":type" が見つかりました。',
|
||||||
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
|
'zip_unique' => 'ZIP内のオブジェクトタイプに :attribute が一意である必要があります。',
|
||||||
|
|
||||||
// Custom validation lines
|
// Custom validation lines
|
||||||
'custom' => [
|
'custom' => [
|
||||||
|
|
|
@ -85,12 +85,12 @@ return [
|
||||||
'webhook_delete_notification' => '웹 훅 삭제함',
|
'webhook_delete_notification' => '웹 훅 삭제함',
|
||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
'import_create' => 'created import',
|
'import_create' => '컨텐츠 ZIP 파일이 생성되었습니다.',
|
||||||
'import_create_notification' => 'Import successfully uploaded',
|
'import_create_notification' => '컨텐츠 ZIP 파일이 업로드 되었습니다.',
|
||||||
'import_run' => 'updated import',
|
'import_run' => '컨텐츠 ZIP 파일을 업데이트하였습니다.',
|
||||||
'import_run_notification' => 'Content successfully imported',
|
'import_run_notification' => '내용을 가져왔습니다.',
|
||||||
'import_delete' => 'deleted import',
|
'import_delete' => '임포트 파일 삭제',
|
||||||
'import_delete_notification' => 'Import successfully deleted',
|
'import_delete_notification' => '임포트 파일을 삭제하였습니다.',
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
'user_create' => '사용자 생성',
|
'user_create' => '사용자 생성',
|
||||||
|
|
|
@ -68,7 +68,7 @@ return [
|
||||||
'email_not_confirmed_text' => '전자우편 확인이 아직 완료되지 않았습니다.',
|
'email_not_confirmed_text' => '전자우편 확인이 아직 완료되지 않았습니다.',
|
||||||
'email_not_confirmed_click_link' => '등록한 직후에 발송된 전자우편에 있는 확인 링크를 클릭하세요.',
|
'email_not_confirmed_click_link' => '등록한 직후에 발송된 전자우편에 있는 확인 링크를 클릭하세요.',
|
||||||
'email_not_confirmed_resend' => '전자우편 확인을 위해 발송된 전자우편을 찾을 수 없다면 아래의 폼을 다시 발행하여 전자우편 확인을 재발송할 수 있습니다.',
|
'email_not_confirmed_resend' => '전자우편 확인을 위해 발송된 전자우편을 찾을 수 없다면 아래의 폼을 다시 발행하여 전자우편 확인을 재발송할 수 있습니다.',
|
||||||
'email_not_confirmed_resend_button' => '전자우편 확인 재전송',
|
'email_not_confirmed_resend_button' => '확인용 이메일 재전송',
|
||||||
|
|
||||||
// User Invite
|
// User Invite
|
||||||
'user_invite_email_subject' => ':appName 애플리케이션에서 초대를 받았습니다!',
|
'user_invite_email_subject' => ':appName 애플리케이션에서 초대를 받았습니다!',
|
||||||
|
@ -84,7 +84,7 @@ return [
|
||||||
'mfa_setup' => '다중 인증 설정',
|
'mfa_setup' => '다중 인증 설정',
|
||||||
'mfa_setup_desc' => '추가 보안 계층으로 다중 인증을 설정합니다.',
|
'mfa_setup_desc' => '추가 보안 계층으로 다중 인증을 설정합니다.',
|
||||||
'mfa_setup_configured' => '이미 설정되었습니다',
|
'mfa_setup_configured' => '이미 설정되었습니다',
|
||||||
'mfa_setup_reconfigure' => '다시 설정',
|
'mfa_setup_reconfigure' => '재설정',
|
||||||
'mfa_setup_remove_confirmation' => '다중 인증을 해제할까요?',
|
'mfa_setup_remove_confirmation' => '다중 인증을 해제할까요?',
|
||||||
'mfa_setup_action' => '설정',
|
'mfa_setup_action' => '설정',
|
||||||
'mfa_backup_codes_usage_limit_warning' => '남은 백업 코드가 다섯 개 미만입니다. 새 백업 코드 세트를 생성하지 않아 코드가 소진되면 계정이 잠길 수 있습니다.',
|
'mfa_backup_codes_usage_limit_warning' => '남은 백업 코드가 다섯 개 미만입니다. 새 백업 코드 세트를 생성하지 않아 코드가 소진되면 계정이 잠길 수 있습니다.',
|
||||||
|
@ -95,7 +95,7 @@ return [
|
||||||
'mfa_gen_confirm_and_enable' => '확인 및 활성화',
|
'mfa_gen_confirm_and_enable' => '확인 및 활성화',
|
||||||
'mfa_gen_backup_codes_title' => '백업 코드 설정',
|
'mfa_gen_backup_codes_title' => '백업 코드 설정',
|
||||||
'mfa_gen_backup_codes_desc' => '코드 목록을 안전한 장소에 보관하세요. 코드 중 하나를 2FA에 쓸 수 있습니다.',
|
'mfa_gen_backup_codes_desc' => '코드 목록을 안전한 장소에 보관하세요. 코드 중 하나를 2FA에 쓸 수 있습니다.',
|
||||||
'mfa_gen_backup_codes_download' => '코드 내려받기',
|
'mfa_gen_backup_codes_download' => '코드 설치',
|
||||||
'mfa_gen_backup_codes_usage_warning' => '각 코드는 한 번씩만 유효합니다.',
|
'mfa_gen_backup_codes_usage_warning' => '각 코드는 한 번씩만 유효합니다.',
|
||||||
'mfa_gen_totp_title' => '모바일 앱 설정',
|
'mfa_gen_totp_title' => '모바일 앱 설정',
|
||||||
'mfa_gen_totp_desc' => '다중 인증에는 Google Authenticator, Authy나 Microsoft Authenticator와 같은 TOTP 지원 모바일 앱이 필요합니다.',
|
'mfa_gen_totp_desc' => '다중 인증에는 Google Authenticator, Authy나 Microsoft Authenticator와 같은 TOTP 지원 모바일 앱이 필요합니다.',
|
||||||
|
@ -104,7 +104,7 @@ return [
|
||||||
'mfa_gen_totp_verify_setup_desc' => '인증 앱에서 생성한 코드를 입력하세요:',
|
'mfa_gen_totp_verify_setup_desc' => '인증 앱에서 생성한 코드를 입력하세요:',
|
||||||
'mfa_gen_totp_provide_code_here' => '백업 코드를 입력하세요.',
|
'mfa_gen_totp_provide_code_here' => '백업 코드를 입력하세요.',
|
||||||
'mfa_verify_access' => '접근 확인',
|
'mfa_verify_access' => '접근 확인',
|
||||||
'mfa_verify_access_desc' => '추가 인증으로 신원을 확인합니다. 설정한 방법 중 하나를 고르세요.',
|
'mfa_verify_access_desc' => '사용자 계정에서는 액세스 권한을 부여받기 전에 추가 검증 수준을 통해 신원을 확인해야 합니다. 계속하려면 구성된 방법 중 하나를 사용하여 확인하세요.',
|
||||||
'mfa_verify_no_methods' => '설정한 방법이 없습니다.',
|
'mfa_verify_no_methods' => '설정한 방법이 없습니다.',
|
||||||
'mfa_verify_no_methods_desc' => '다중 인증을 설정하지 않았습니다. 접근 권한을 얻기 전에 하나 이상의 다중 인증을 설정해야 합니다.',
|
'mfa_verify_no_methods_desc' => '다중 인증을 설정하지 않았습니다. 접근 권한을 얻기 전에 하나 이상의 다중 인증을 설정해야 합니다.',
|
||||||
'mfa_verify_use_totp' => '모바일 앱으로 인증하기',
|
'mfa_verify_use_totp' => '모바일 앱으로 인증하기',
|
||||||
|
|
|
@ -109,5 +109,5 @@ return [
|
||||||
'terms_of_service' => '서비스 이용 약관',
|
'terms_of_service' => '서비스 이용 약관',
|
||||||
|
|
||||||
// OpenSearch
|
// OpenSearch
|
||||||
'opensearch_description' => 'Search :appName',
|
'opensearch_description' => '검색 :appName',
|
||||||
];
|
];
|
||||||
|
|
|
@ -33,7 +33,7 @@ return [
|
||||||
'image_update_success' => '이미지 정보가 수정되었습니다.',
|
'image_update_success' => '이미지 정보가 수정되었습니다.',
|
||||||
'image_delete_success' => '이미지가 삭제되었습니다.',
|
'image_delete_success' => '이미지가 삭제되었습니다.',
|
||||||
'image_replace' => '이미지 교체',
|
'image_replace' => '이미지 교체',
|
||||||
'image_replace_success' => '이미지 파일 업데이트 성공',
|
'image_replace_success' => '이미지가 수정되었습니다.',
|
||||||
'image_rebuild_thumbs' => '사이즈 변경 재생성하기',
|
'image_rebuild_thumbs' => '사이즈 변경 재생성하기',
|
||||||
'image_rebuild_thumbs_success' => '이미지 크기 변경이 성공적으로 완료되었습니다!',
|
'image_rebuild_thumbs_success' => '이미지 크기 변경이 성공적으로 완료되었습니다!',
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ return [
|
||||||
'about' => '이 편집기에 대하여',
|
'about' => '이 편집기에 대하여',
|
||||||
'about_title' => 'WYSIWYG 편집기에 대하여',
|
'about_title' => 'WYSIWYG 편집기에 대하여',
|
||||||
'editor_license' => '편집기 라이선스 & 저작권',
|
'editor_license' => '편집기 라이선스 & 저작권',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => '이 편집기는 MIT 라이선스에 따라 배포되는 :lexicalLink의 포크로 만들어졌습니다.',
|
||||||
'editor_lexical_license_link' => '전체 라이센스 세부 사항은 여기에서 확인할 수 있습니다.',
|
'editor_lexical_license_link' => '전체 라이센스 세부 사항은 여기에서 확인할 수 있습니다.',
|
||||||
'editor_tiny_license' => '이 편집기는 MIT 라이선스에 따라 제공되는 :tinyLink를 사용하여 제작되었습니다.',
|
'editor_tiny_license' => '이 편집기는 MIT 라이선스에 따라 제공되는 :tinyLink를 사용하여 제작되었습니다.',
|
||||||
'editor_tiny_license_link' => 'TinyMCE의 저작권 및 라이선스 세부 정보는 여기에서 확인할 수 있습니다.',
|
'editor_tiny_license_link' => 'TinyMCE의 저작권 및 라이선스 세부 정보는 여기에서 확인할 수 있습니다.',
|
||||||
|
|
|
@ -12,17 +12,17 @@ return [
|
||||||
'recently_created_chapters' => '최근에 만든 챕터',
|
'recently_created_chapters' => '최근에 만든 챕터',
|
||||||
'recently_created_books' => '최근에 만든 책',
|
'recently_created_books' => '최근에 만든 책',
|
||||||
'recently_created_shelves' => '최근에 만든 책장',
|
'recently_created_shelves' => '최근에 만든 책장',
|
||||||
'recently_update' => '최근에 수정함',
|
'recently_update' => '최신 수정 목록',
|
||||||
'recently_viewed' => '최근에 읽음',
|
'recently_viewed' => '최근에 본 목록',
|
||||||
'recent_activity' => '최근에 활동함',
|
'recent_activity' => '최근 활동 기록',
|
||||||
'create_now' => '바로 만들기',
|
'create_now' => '바로 만들기',
|
||||||
'revisions' => '수정본',
|
'revisions' => '버전',
|
||||||
'meta_revision' => '판본 #:revisionCount',
|
'meta_revision' => '버전 #:revisionCount',
|
||||||
'meta_created' => '만듦 :timeLength',
|
'meta_created' => '생성 :timeLength',
|
||||||
'meta_created_name' => '만듦 :timeLength, :user',
|
'meta_created_name' => '생성 :timeLength, :user',
|
||||||
'meta_updated' => '수정함 :timeLength',
|
'meta_updated' => '수정 :timeLength',
|
||||||
'meta_updated_name' => '수정함 :timeLength, :user',
|
'meta_updated_name' => '수정 :timeLength, :user',
|
||||||
'meta_owned_name' => '소유함 :user',
|
'meta_owned_name' => ':user 소유',
|
||||||
'meta_reference_count' => '참조 대상 :count item|참조 대상 :count items',
|
'meta_reference_count' => '참조 대상 :count item|참조 대상 :count items',
|
||||||
'entity_select' => '항목 선택',
|
'entity_select' => '항목 선택',
|
||||||
'entity_select_lack_permission' => '이 항목을 선택하기 위해 필요한 권한이 없습니다',
|
'entity_select_lack_permission' => '이 항목을 선택하기 위해 필요한 권한이 없습니다',
|
||||||
|
@ -39,30 +39,30 @@ return [
|
||||||
'export_pdf' => 'PDF 파일',
|
'export_pdf' => 'PDF 파일',
|
||||||
'export_text' => '일반 텍스트 파일',
|
'export_text' => '일반 텍스트 파일',
|
||||||
'export_md' => '마크다운 파일',
|
'export_md' => '마크다운 파일',
|
||||||
'export_zip' => 'Portable ZIP',
|
'export_zip' => '압축 파일',
|
||||||
'default_template' => '기본 페이지 템플릿',
|
'default_template' => '기본 페이지 템플릿',
|
||||||
'default_template_explain' => '이 항목 내에서 생성되는 모든 페이지의 기본 콘텐츠로 사용할 페이지 템플릿을 지정합니다. 페이지 작성자가 선택한 템플릿 페이지를 볼 수 있는 권한이 있는 경우에만 이 항목이 사용된다는 점을 유의하세요.',
|
'default_template_explain' => '이 항목 내에서 생성되는 모든 페이지의 기본 콘텐츠로 사용할 페이지 템플릿을 지정합니다. 페이지 작성자가 선택한 템플릿 페이지를 볼 수 있는 권한이 있는 경우에만 이 항목이 사용된다는 점을 유의하세요.',
|
||||||
'default_template_select' => '템플릿 페이지 선택',
|
'default_template_select' => '템플릿 페이지 선택',
|
||||||
'import' => 'Import',
|
'import' => '압축 파일 가져오기',
|
||||||
'import_validate' => 'Validate Import',
|
'import_validate' => '압축 파일 검증하기',
|
||||||
'import_desc' => '같은 인스턴스나 다른 인스턴스에서 휴대용 zip 내보내기를 사용하여 책, 장 및 페이지를 가져옵니다. 진행하려면 ZIP 파일을 선택합니다. 파일을 업로드하고 검증한 후 다음 보기에서 가져오기를 구성하고 확인할 수 있습니다.',
|
'import_desc' => '같은 인스턴스나 다른 인스턴스에서 휴대용 zip 내보내기를 사용하여 책, 장 및 페이지를 가져옵니다. 진행하려면 ZIP 파일을 선택합니다. 파일을 업로드하고 검증한 후 다음 보기에서 가져오기를 구성하고 확인할 수 있습니다.',
|
||||||
'import_zip_select' => 'Select ZIP file to upload',
|
'import_zip_select' => '업로드할 휴대용 압축 파일 선택',
|
||||||
'import_zip_validation_errors' => 'Errors were detected while validating the provided ZIP file:',
|
'import_zip_validation_errors' => '제공된 Portable ZIP 파일을 검증하는 동안 오류가 감지되었습니다.',
|
||||||
'import_pending' => 'Pending Imports',
|
'import_pending' => 'Portable ZIP 파일 가져오기가 일시정지 되었습니다.',
|
||||||
'import_pending_none' => 'No imports have been started.',
|
'import_pending_none' => 'Portable ZIP 파일 가져오기가 시작되지 않았습니다.',
|
||||||
'import_continue' => 'Continue Import',
|
'import_continue' => 'Portable ZIP 가져오기 계속하기',
|
||||||
'import_continue_desc' => 'Review the content due to be imported from the uploaded ZIP file. When ready, run the import to add its contents to this system. The uploaded ZIP import file will be automatically removed on successful import.',
|
'import_continue_desc' => '업로드된 ZIP 파일에서 가져올 내용을 검토합니다. 준비가 되면 가져오기를 실행하여 이 시스템에 내용을 추가합니다. 업로드된 ZIP 가져오기 파일은 가져오기가 성공하면 자동으로 제거됩니다.',
|
||||||
'import_details' => 'Import Details',
|
'import_details' => '압축된 ZIP 파일 상세',
|
||||||
'import_run' => 'Run Import',
|
'import_run' => '가져오기 실행',
|
||||||
'import_size' => ':size Import ZIP Size',
|
'import_size' => '압축된 ZIP 파일 사이즈',
|
||||||
'import_uploaded_at' => 'Uploaded :relativeTime',
|
'import_uploaded_at' => '업로드되었습니다. :relativeTime',
|
||||||
'import_uploaded_by' => 'Uploaded by',
|
'import_uploaded_by' => '업로드되었습니다.',
|
||||||
'import_location' => 'Import Location',
|
'import_location' => '가져올 경로',
|
||||||
'import_location_desc' => 'Select a target location for your imported content. You\'ll need the relevant permissions to create within the location you choose.',
|
'import_location_desc' => '가져온 콘텐츠에 대한 대상 위치를 선택하세요. 선택한 위치 내에서 만들려면 관련 권한이 필요합니다.',
|
||||||
'import_delete_confirm' => 'Are you sure you want to delete this import?',
|
'import_delete_confirm' => '정말 삭제하시겠습니까?',
|
||||||
'import_delete_desc' => '업로드된 ZIP 파일이 삭제되며, 실행 취소할 수 없습니다.',
|
'import_delete_desc' => '업로드된 ZIP 파일이 삭제되며, 실행 취소할 수 없습니다.',
|
||||||
'import_errors' => 'Import Errors',
|
'import_errors' => '가져오기 오류',
|
||||||
'import_errors_desc' => 'The follow errors occurred during the import attempt:',
|
'import_errors_desc' => '가져오기 중 에러가 발생했습니다.',
|
||||||
|
|
||||||
// Permissions and restrictions
|
// Permissions and restrictions
|
||||||
'permissions' => '권한',
|
'permissions' => '권한',
|
||||||
|
@ -157,7 +157,7 @@ return [
|
||||||
'books_form_book_name' => '책 이름',
|
'books_form_book_name' => '책 이름',
|
||||||
'books_save' => '저장',
|
'books_save' => '저장',
|
||||||
'books_permissions' => '책 권한',
|
'books_permissions' => '책 권한',
|
||||||
'books_permissions_updated' => '권한 저장함',
|
'books_permissions_updated' => '책의 권한이 수정되었습니다.',
|
||||||
'books_empty_contents' => '이 책에 챕터나 문서가 없습니다.',
|
'books_empty_contents' => '이 책에 챕터나 문서가 없습니다.',
|
||||||
'books_empty_create_page' => '문서 만들기',
|
'books_empty_create_page' => '문서 만들기',
|
||||||
'books_empty_sort_current_book' => '현재 책 정렬',
|
'books_empty_sort_current_book' => '현재 책 정렬',
|
||||||
|
@ -165,7 +165,7 @@ return [
|
||||||
'books_permissions_active' => '책 권한 허용함',
|
'books_permissions_active' => '책 권한 허용함',
|
||||||
'books_search_this' => '이 책에서 검색',
|
'books_search_this' => '이 책에서 검색',
|
||||||
'books_navigation' => '목차',
|
'books_navigation' => '목차',
|
||||||
'books_sort' => '다른 책들',
|
'books_sort' => '책 내용 정렬',
|
||||||
'books_sort_desc' => '책 내에서 챕터와 페이지를 이동하여 내용을 재구성할 수 있습니다. 다른 책을 추가하여 책 간에 챕터와 페이지를 쉽게 이동할 수 있습니다.',
|
'books_sort_desc' => '책 내에서 챕터와 페이지를 이동하여 내용을 재구성할 수 있습니다. 다른 책을 추가하여 책 간에 챕터와 페이지를 쉽게 이동할 수 있습니다.',
|
||||||
'books_sort_named' => ':bookName 정렬',
|
'books_sort_named' => ':bookName 정렬',
|
||||||
'books_sort_name' => '제목',
|
'books_sort_name' => '제목',
|
||||||
|
@ -187,7 +187,7 @@ return [
|
||||||
'books_sort_move_before_chapter' => '이전 챕터로 이동',
|
'books_sort_move_before_chapter' => '이전 챕터로 이동',
|
||||||
'books_sort_move_after_chapter' => '챕터 뒤로 이동',
|
'books_sort_move_after_chapter' => '챕터 뒤로 이동',
|
||||||
'books_copy' => '책 복사하기',
|
'books_copy' => '책 복사하기',
|
||||||
'books_copy_success' => '책 복사함',
|
'books_copy_success' => '책을 복사하였습니다.',
|
||||||
|
|
||||||
// Chapters
|
// Chapters
|
||||||
'chapter' => '챕터',
|
'chapter' => '챕터',
|
||||||
|
@ -200,17 +200,17 @@ return [
|
||||||
'chapters_delete_named' => ':chapterName(을)를 지웁니다.',
|
'chapters_delete_named' => ':chapterName(을)를 지웁니다.',
|
||||||
'chapters_delete_explain' => '\':ChapterName\'에 있는 모든 페이지도 지웁니다.',
|
'chapters_delete_explain' => '\':ChapterName\'에 있는 모든 페이지도 지웁니다.',
|
||||||
'chapters_delete_confirm' => '이 챕터를 지울 건가요?',
|
'chapters_delete_confirm' => '이 챕터를 지울 건가요?',
|
||||||
'chapters_edit' => '챕터 바꾸기',
|
'chapters_edit' => '챕터 수정하기',
|
||||||
'chapters_edit_named' => ':chapterName 바꾸기',
|
'chapters_edit_named' => ':chapterName 바꾸기',
|
||||||
'chapters_save' => '저장',
|
'chapters_save' => '저장',
|
||||||
'chapters_move' => '챕터 이동하기',
|
'chapters_move' => '챕터 이동하기',
|
||||||
'chapters_move_named' => ':chapterName 이동하기',
|
'chapters_move_named' => ':chapterName 이동하기',
|
||||||
'chapters_copy' => '챕터 복사하기',
|
'chapters_copy' => '챕터 복사하기',
|
||||||
'chapters_copy_success' => '챕터 복사함',
|
'chapters_copy_success' => '챕터를 복사하였습니다.',
|
||||||
'chapters_permissions' => '챕터 권한',
|
'chapters_permissions' => '챕터 권한',
|
||||||
'chapters_empty' => '이 챕터에 문서가 없습니다.',
|
'chapters_empty' => '이 챕터에 문서가 없습니다.',
|
||||||
'chapters_permissions_active' => '문서 권한 허용함',
|
'chapters_permissions_active' => '문서 권한 허용함',
|
||||||
'chapters_permissions_success' => '권한 저장함',
|
'chapters_permissions_success' => '챕터의 권한을 수정하였습니다.',
|
||||||
'chapters_search_this' => '이 챕터에서 검색',
|
'chapters_search_this' => '이 챕터에서 검색',
|
||||||
'chapter_sort_book' => '책 정렬하기',
|
'chapter_sort_book' => '책 정렬하기',
|
||||||
|
|
||||||
|
@ -240,21 +240,21 @@ return [
|
||||||
'pages_edit_draft_save_at' => '보관함: ',
|
'pages_edit_draft_save_at' => '보관함: ',
|
||||||
'pages_edit_delete_draft' => '초안 삭제',
|
'pages_edit_delete_draft' => '초안 삭제',
|
||||||
'pages_edit_delete_draft_confirm' => '초안 페이지 변경 내용을 삭제하시겠습니까? 마지막 전체 저장 이후의 모든 변경 내용이 손실되고 편집기가 최신 페이지의 초안 저장 상태가 아닌 상태로 업데이트됩니다.',
|
'pages_edit_delete_draft_confirm' => '초안 페이지 변경 내용을 삭제하시겠습니까? 마지막 전체 저장 이후의 모든 변경 내용이 손실되고 편집기가 최신 페이지의 초안 저장 상태가 아닌 상태로 업데이트됩니다.',
|
||||||
'pages_edit_discard_draft' => '폐기',
|
'pages_edit_discard_draft' => '변경된 내용 삭제',
|
||||||
'pages_edit_switch_to_markdown' => '마크다운 편집기로 전환',
|
'pages_edit_switch_to_markdown' => '마크다운 편집기로 전환',
|
||||||
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
|
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
|
||||||
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
|
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
|
||||||
'pages_edit_switch_to_wysiwyg' => 'WYSIWYG 편집기로 전환',
|
'pages_edit_switch_to_wysiwyg' => 'WYSIWYG 편집기로 전환',
|
||||||
'pages_edit_switch_to_new_wysiwyg' => '새 위지윅 편집기로 변경',
|
'pages_edit_switch_to_new_wysiwyg' => '새 위지윅 편집기로 변경',
|
||||||
'pages_edit_switch_to_new_wysiwyg_desc' => '(In Alpha Testing)',
|
'pages_edit_switch_to_new_wysiwyg_desc' => '알파 테스트 중',
|
||||||
'pages_edit_set_changelog' => '수정본 설명',
|
'pages_edit_set_changelog' => '수정본 설명',
|
||||||
'pages_edit_enter_changelog_desc' => '수정본 설명',
|
'pages_edit_enter_changelog_desc' => '수정본 설명',
|
||||||
'pages_edit_enter_changelog' => '설명',
|
'pages_edit_enter_changelog' => '변경 로그 입력란',
|
||||||
'pages_editor_switch_title' => '편집기 전환',
|
'pages_editor_switch_title' => '편집기 전환',
|
||||||
'pages_editor_switch_are_you_sure' => '이 페이지의 편집기를 변경하시겠어요?',
|
'pages_editor_switch_are_you_sure' => '이 페이지의 편집기를 변경하시겠어요?',
|
||||||
'pages_editor_switch_consider_following' => '편집기를 전환할 때에 다음 사항들을 고려하세요:',
|
'pages_editor_switch_consider_following' => '편집기를 전환할 때에 다음 사항들을 고려하세요:',
|
||||||
'pages_editor_switch_consideration_a' => '저장된 새 편집기 옵션은 편집기 유형을 직접 변경할 수 없는 편집자를 포함하여 향후 모든 편집자가 사용할 수 있습니다.',
|
'pages_editor_switch_consideration_a' => '저장된 새 편집기 옵션은 편집기 유형을 직접 변경할 수 없는 편집자를 포함하여 향후 모든 편집자가 사용할 수 있습니다.',
|
||||||
'pages_editor_switch_consideration_b' => '이로 인해 특정 상황에서는 디테일과 구문이 손실될 수 있습니다.',
|
'pages_editor_switch_consideration_b' => '이로 인해 특정 상황에서는 상세 내용과 구문이 손실될 수 있습니다.',
|
||||||
'pages_editor_switch_consideration_c' => '마지막 저장 이후 변경된 태그 또는 변경 로그 변경 사항은 이 변경 사항에서 유지되지 않습니다.',
|
'pages_editor_switch_consideration_c' => '마지막 저장 이후 변경된 태그 또는 변경 로그 변경 사항은 이 변경 사항에서 유지되지 않습니다.',
|
||||||
'pages_save' => '저장',
|
'pages_save' => '저장',
|
||||||
'pages_title' => '문서 제목',
|
'pages_title' => '문서 제목',
|
||||||
|
@ -406,8 +406,8 @@ return [
|
||||||
|
|
||||||
// Revision
|
// Revision
|
||||||
'revision_delete_confirm' => '이 수정본을 지울 건가요?',
|
'revision_delete_confirm' => '이 수정본을 지울 건가요?',
|
||||||
'revision_restore_confirm' => '이 수정본을 되돌릴 건가요? 현재 판본을 바꿉니다.',
|
'revision_restore_confirm' => '이 버전을 되돌릴 건가요? 현재 페이지는 대체됩니다.',
|
||||||
'revision_cannot_delete_latest' => '현재 판본은 지울 수 없습니다.',
|
'revision_cannot_delete_latest' => '현재 버전본은 지울 수 없습니다.',
|
||||||
|
|
||||||
// Copy view
|
// Copy view
|
||||||
'copy_consider' => '항목을 복사할 때 다음을 고려하세요.',
|
'copy_consider' => '항목을 복사할 때 다음을 고려하세요.',
|
||||||
|
@ -435,10 +435,10 @@ return [
|
||||||
'references_to_desc' => '이 항목으로 연결되는 시스템에서 알려진 모든 콘텐츠가 아래에 나열되어 있습니다.',
|
'references_to_desc' => '이 항목으로 연결되는 시스템에서 알려진 모든 콘텐츠가 아래에 나열되어 있습니다.',
|
||||||
|
|
||||||
// Watch Options
|
// Watch Options
|
||||||
'watch' => '주시',
|
'watch' => '변경 알림 설정',
|
||||||
'watch_title_default' => '기본 설정',
|
'watch_title_default' => '기본 설정',
|
||||||
'watch_desc_default' => '보기를 기본 알림 환경설정으로 되돌릴 수 있습니다.',
|
'watch_desc_default' => '알림 설정을 기본값으로 되돌리기',
|
||||||
'watch_title_ignore' => '무시',
|
'watch_title_ignore' => '알림 설정 끄기',
|
||||||
'watch_desc_ignore' => '사용자 수준 환경설정의 알림을 포함한 모든 알림을 무시합니다.',
|
'watch_desc_ignore' => '사용자 수준 환경설정의 알림을 포함한 모든 알림을 무시합니다.',
|
||||||
'watch_title_new' => '새로운 페이지',
|
'watch_title_new' => '새로운 페이지',
|
||||||
'watch_desc_new' => '이 항목에 새 페이지가 생성되면 알림을 받습니다.',
|
'watch_desc_new' => '이 항목에 새 페이지가 생성되면 알림을 받습니다.',
|
||||||
|
|
|
@ -78,7 +78,7 @@ return [
|
||||||
// Users
|
// Users
|
||||||
'users_cannot_delete_only_admin' => 'Admin을 삭제할 수 없습니다.',
|
'users_cannot_delete_only_admin' => 'Admin을 삭제할 수 없습니다.',
|
||||||
'users_cannot_delete_guest' => 'Guest를 삭제할 수 없습니다.',
|
'users_cannot_delete_guest' => 'Guest를 삭제할 수 없습니다.',
|
||||||
'users_could_not_send_invite' => 'Could not create user since invite email failed to send',
|
'users_could_not_send_invite' => '초대 이메일을 보내는 데 실패하여 사용자를 생성할 수 없습니다.',
|
||||||
|
|
||||||
// Roles
|
// Roles
|
||||||
'role_cannot_be_edited' => '권한을 수정할 수 없습니다.',
|
'role_cannot_be_edited' => '권한을 수정할 수 없습니다.',
|
||||||
|
@ -94,7 +94,7 @@ return [
|
||||||
'empty_comment' => '빈 댓글은 등록할 수 없습니다.',
|
'empty_comment' => '빈 댓글은 등록할 수 없습니다.',
|
||||||
|
|
||||||
// Error pages
|
// Error pages
|
||||||
'404_page_not_found' => '404 Not Found',
|
'404_page_not_found' => '페이지를 찾을 수 없습니다.',
|
||||||
'sorry_page_not_found' => '문서를 못 찾았습니다.',
|
'sorry_page_not_found' => '문서를 못 찾았습니다.',
|
||||||
'sorry_page_not_found_permission_warning' => '문서를 볼 권한이 없습니다.',
|
'sorry_page_not_found_permission_warning' => '문서를 볼 권한이 없습니다.',
|
||||||
'image_not_found' => '이미지를 찾을 수 없습니다',
|
'image_not_found' => '이미지를 찾을 수 없습니다',
|
||||||
|
@ -106,16 +106,16 @@ return [
|
||||||
'back_soon' => '곧 돌아갑니다.',
|
'back_soon' => '곧 돌아갑니다.',
|
||||||
|
|
||||||
// Import
|
// Import
|
||||||
'import_zip_cant_read' => 'Could not read ZIP file.',
|
'import_zip_cant_read' => 'ZIP 파일을 읽을 수 없습니다.',
|
||||||
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
|
'import_zip_cant_decode_data' => 'ZIP data.json 콘텐츠를 찾아서 디코딩할 수 없습니다.',
|
||||||
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
|
'import_zip_no_data' => 'ZIP 파일 데이터에는 예상되는 책, 장 또는 페이지 콘텐츠가 없습니다.',
|
||||||
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
|
'import_validation_failed' => 'ZIP 파일을 가져오려다 실패했습니다. 이유:',
|
||||||
'import_zip_failed_notification' => 'Failed to import ZIP file.',
|
'import_zip_failed_notification' => 'ZIP 파일을 가져오지 못했습니다.',
|
||||||
'import_perms_books' => 'You are lacking the required permissions to create books.',
|
'import_perms_books' => '책을 만드는 데 필요한 권한이 없습니다.',
|
||||||
'import_perms_chapters' => 'You are lacking the required permissions to create chapters.',
|
'import_perms_chapters' => '챕터를 만드는 데 필요한 권한이 없습니다.',
|
||||||
'import_perms_pages' => 'You are lacking the required permissions to create pages.',
|
'import_perms_pages' => '페이지를 만드는 데 필요한 권한이 없습니다.',
|
||||||
'import_perms_images' => 'You are lacking the required permissions to create images.',
|
'import_perms_images' => '이미지를 만드는 데 필요한 권한이 없습니다.',
|
||||||
'import_perms_attachments' => 'You are lacking the required permission to create attachments.',
|
'import_perms_attachments' => '첨부 파일을 만드는 데 필요한 권한이 없습니다.',
|
||||||
|
|
||||||
// API errors
|
// API errors
|
||||||
'api_no_authorization_found' => '요청에서 인증 토큰을 찾을 수 없습니다.',
|
'api_no_authorization_found' => '요청에서 인증 토큰을 찾을 수 없습니다.',
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
*/
|
*/
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'password' => '여덟 글자를 넘어야 합니다.',
|
'password' => '최소 8글자 이상이어야 합니다.',
|
||||||
'user' => "메일 주소를 가진 사용자가 없습니다.",
|
'user' => "메일 주소를 가진 사용자가 없습니다.",
|
||||||
'token' => '유효하지 않거나 만료된 토큰입니다.',
|
'token' => '유효하지 않거나 만료된 토큰입니다.',
|
||||||
'sent' => '메일을 보냈습니다.',
|
'sent' => '메일을 보냈습니다.',
|
||||||
'reset' => '패스워드를 바꿨습니다.',
|
'reset' => '패스워드가 초기화되었습니다.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -26,8 +26,8 @@ return [
|
||||||
'notifications_opt_comment_replies' => '내 댓글에 대한 답글 알림 받기',
|
'notifications_opt_comment_replies' => '내 댓글에 대한 답글 알림 받기',
|
||||||
'notifications_save' => '환경설정 저장',
|
'notifications_save' => '환경설정 저장',
|
||||||
'notifications_update_success' => '알림 환경설정이 업데이트되었습니다!',
|
'notifications_update_success' => '알림 환경설정이 업데이트되었습니다!',
|
||||||
'notifications_watched' => '주시 및 무시한 항목',
|
'notifications_watched' => '알람 설정 및 알람 무시한 항목',
|
||||||
'notifications_watched_desc' => '아래는 사용자 지정 시계 환경설정이 적용된 항목입니다. 이러한 항목에 대한 환경설정을 업데이트하려면 해당 항목을 본 다음 사이드바에서 시계 옵션을 찾습니다.',
|
'notifications_watched_desc' => '아래는 사용자 지정 알람 환경설정이 적용된 항목입니다. 이러한 항목에 대한 환경설정을 업데이트하려면 해당 항목을 본 다음 사이드바에서 알림 옵션을 찾습니다.',
|
||||||
|
|
||||||
'auth' => '액세스 및 보안',
|
'auth' => '액세스 및 보안',
|
||||||
'auth_change_password' => '패스워드 변경',
|
'auth_change_password' => '패스워드 변경',
|
||||||
|
|
|
@ -13,13 +13,13 @@ return [
|
||||||
'categories' => '카테고리',
|
'categories' => '카테고리',
|
||||||
|
|
||||||
// App Settings
|
// App Settings
|
||||||
'app_customization' => '맞춤',
|
'app_customization' => '어플리케이션 설정',
|
||||||
'app_features_security' => '기능 및 보안',
|
'app_features_security' => '기능 및 보안',
|
||||||
'app_name' => '애플리케이션 이름 (사이트 제목)',
|
'app_name' => '애플리케이션 이름 (사이트 제목)',
|
||||||
'app_name_desc' => '이 이름은 헤더와 시스템에서 보낸 모든 이메일에 표시됩니다.',
|
'app_name_desc' => '이 이름은 헤더와 시스템에서 보낸 모든 이메일에 표시됩니다.',
|
||||||
'app_name_header' => '헤더에 이름 표시',
|
'app_name_header' => '헤더에 이름 표시',
|
||||||
'app_public_access' => '사이트 공개',
|
'app_public_access' => '사이트 공개',
|
||||||
'app_public_access_desc' => '이 옵션을 활성화하면 로그인하지 않은 방문자도 북스택 인스턴스의 콘텐츠에 액세스할 수 있습니다.',
|
'app_public_access_desc' => '이 옵션을 활성화하면 로그인하지 않은 방문자도 이 서버의 콘텐츠에 액세스할 수 있습니다.',
|
||||||
'app_public_access_desc_guest' => '일반 방문자의 액세스는 "Guest" 사용자를 통해 제어할 수 있습니다.',
|
'app_public_access_desc_guest' => '일반 방문자의 액세스는 "Guest" 사용자를 통해 제어할 수 있습니다.',
|
||||||
'app_public_access_toggle' => '공개 액세스 허용',
|
'app_public_access_toggle' => '공개 액세스 허용',
|
||||||
'app_public_viewing' => '공개 열람을 허용할까요?',
|
'app_public_viewing' => '공개 열람을 허용할까요?',
|
||||||
|
@ -63,7 +63,7 @@ return [
|
||||||
// Registration Settings
|
// Registration Settings
|
||||||
'reg_settings' => '가입',
|
'reg_settings' => '가입',
|
||||||
'reg_enable' => '가입 활성화',
|
'reg_enable' => '가입 활성화',
|
||||||
'reg_enable_toggle' => '가입 받기',
|
'reg_enable_toggle' => '가입 허용',
|
||||||
'reg_enable_desc' => '가입한 사용자는 한 가지 권한을 가집니다.',
|
'reg_enable_desc' => '가입한 사용자는 한 가지 권한을 가집니다.',
|
||||||
'reg_default_role' => '기본 권한',
|
'reg_default_role' => '기본 권한',
|
||||||
'reg_enable_external_warning' => '외부 시스템이 LDAP나 SAML 인증이 활성화되어 있다면 설정과 관계없이 인증을 성공할 때 없는 계정을 만듭니다.',
|
'reg_enable_external_warning' => '외부 시스템이 LDAP나 SAML 인증이 활성화되어 있다면 설정과 관계없이 인증을 성공할 때 없는 계정을 만듭니다.',
|
||||||
|
@ -75,9 +75,9 @@ return [
|
||||||
'reg_confirm_restrict_domain_placeholder' => '차단한 도메인 없음',
|
'reg_confirm_restrict_domain_placeholder' => '차단한 도메인 없음',
|
||||||
|
|
||||||
// Maintenance settings
|
// Maintenance settings
|
||||||
'maint' => '데이터',
|
'maint' => '유지관리',
|
||||||
'maint_image_cleanup' => '이미지 정리',
|
'maint_image_cleanup' => '이미지 정리',
|
||||||
'maint_image_cleanup_desc' => '중복한 이미지를 찾습니다. 실행하기 전에 이미지를 백업하세요.',
|
'maint_image_cleanup_desc' => '중복인 이미지를 찾습니다. 실행하기 전에 이미지를 백업하세요.',
|
||||||
'maint_delete_images_only_in_revisions' => '지난 버전에만 있는 이미지 지우기',
|
'maint_delete_images_only_in_revisions' => '지난 버전에만 있는 이미지 지우기',
|
||||||
'maint_image_cleanup_run' => '실행',
|
'maint_image_cleanup_run' => '실행',
|
||||||
'maint_image_cleanup_warning' => '이미지 :count개를 지울 건가요?',
|
'maint_image_cleanup_warning' => '이미지 :count개를 지울 건가요?',
|
||||||
|
@ -162,7 +162,7 @@ return [
|
||||||
'role_access_api' => '시스템 접근 API',
|
'role_access_api' => '시스템 접근 API',
|
||||||
'role_manage_settings' => '사이트 설정 관리',
|
'role_manage_settings' => '사이트 설정 관리',
|
||||||
'role_export_content' => '항목 내보내기',
|
'role_export_content' => '항목 내보내기',
|
||||||
'role_import_content' => 'Import content',
|
'role_import_content' => '내용 가져오기',
|
||||||
'role_editor_change' => '페이지 편집기 변경',
|
'role_editor_change' => '페이지 편집기 변경',
|
||||||
'role_notifications' => '알림 수신 및 관리',
|
'role_notifications' => '알림 수신 및 관리',
|
||||||
'role_asset' => '권한 항목',
|
'role_asset' => '권한 항목',
|
||||||
|
@ -188,9 +188,9 @@ return [
|
||||||
'users_details_desc' => '메일 주소로 로그인합니다.',
|
'users_details_desc' => '메일 주소로 로그인합니다.',
|
||||||
'users_details_desc_no_email' => '사용자 이름을 바꿉니다.',
|
'users_details_desc_no_email' => '사용자 이름을 바꿉니다.',
|
||||||
'users_role' => '사용자 권한',
|
'users_role' => '사용자 권한',
|
||||||
'users_role_desc' => '고른 권한 모두를 적용합니다.',
|
'users_role_desc' => '이 사용자에게 할당될 역할을 선택합니다. 사용자가 여러 역할에 할당된 경우 해당 역할의 권한이 겹쳐서 적용됩니다. 할당된 역할의 모든 기능을 받게 됩니다.',
|
||||||
'users_password' => '사용자 패스워드',
|
'users_password' => '사용자 패스워드',
|
||||||
'users_password_desc' => '패스워드는 여덟 글자를 넘어야 합니다.',
|
'users_password_desc' => '패스워드는 8 글자를 넘어야 합니다.',
|
||||||
'users_send_invite_text' => '패스워드 설정을 권유하는 메일을 보내거나 내가 정할 수 있습니다.',
|
'users_send_invite_text' => '패스워드 설정을 권유하는 메일을 보내거나 내가 정할 수 있습니다.',
|
||||||
'users_send_invite_option' => '메일 보내기',
|
'users_send_invite_option' => '메일 보내기',
|
||||||
'users_external_auth_id' => '외부 인증 계정',
|
'users_external_auth_id' => '외부 인증 계정',
|
||||||
|
@ -215,8 +215,8 @@ return [
|
||||||
'users_social_accounts_info' => '다른 계정으로 간단하게 로그인하세요. 여기에서 계정 연결을 끊는 것과 소셜 계정에서 접근 권한을 취소하는 것은 다릅니다.',
|
'users_social_accounts_info' => '다른 계정으로 간단하게 로그인하세요. 여기에서 계정 연결을 끊는 것과 소셜 계정에서 접근 권한을 취소하는 것은 다릅니다.',
|
||||||
'users_social_connect' => '계정 연결',
|
'users_social_connect' => '계정 연결',
|
||||||
'users_social_disconnect' => '계정 연결 끊기',
|
'users_social_disconnect' => '계정 연결 끊기',
|
||||||
'users_social_status_connected' => '연결됨',
|
'users_social_status_connected' => '연결되었습니다.',
|
||||||
'users_social_status_disconnected' => '연결 해제됨',
|
'users_social_status_disconnected' => '연결 해제되었습니다.',
|
||||||
'users_social_connected' => ':socialAccount(와)과 연결했습니다.',
|
'users_social_connected' => ':socialAccount(와)과 연결했습니다.',
|
||||||
'users_social_disconnected' => ':socialAccount(와)과의 연결을 끊었습니다.',
|
'users_social_disconnected' => ':socialAccount(와)과의 연결을 끊었습니다.',
|
||||||
'users_api_tokens' => 'API 토큰',
|
'users_api_tokens' => 'API 토큰',
|
||||||
|
|
|
@ -105,10 +105,10 @@ return [
|
||||||
'url' => ':attribute(은)는 유효하지 않은 형식입니다.',
|
'url' => ':attribute(은)는 유효하지 않은 형식입니다.',
|
||||||
'uploaded' => '파일 크기가 서버에서 허용하는 수치를 넘습니다.',
|
'uploaded' => '파일 크기가 서버에서 허용하는 수치를 넘습니다.',
|
||||||
|
|
||||||
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
|
'zip_file' => ':attribute은(는) ZIP 파일 내의 파일을 참조해야 합니다.',
|
||||||
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
|
'zip_file_mime' => ':attribute은(는) :validTypes, found :foundType 유형의 파일을 참조해야 합니다.',
|
||||||
'zip_model_expected' => 'Data object expected but ":type" found.',
|
'zip_model_expected' => '데이터 객체가 필요하지만 ":type" 타입이 발견되었습니다.',
|
||||||
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
|
'zip_unique' => ':attribute은(는) ZIP 파일 내의 객체 유형에 대해 고유해야 합니다.',
|
||||||
|
|
||||||
// Custom validation lines
|
// Custom validation lines
|
||||||
'custom' => [
|
'custom' => [
|
||||||
|
|
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'Over de bewerker',
|
'about' => 'Over de bewerker',
|
||||||
'about_title' => 'Over de WYSIWYG Bewerker',
|
'about_title' => 'Over de WYSIWYG Bewerker',
|
||||||
'editor_license' => 'Bewerker Licentie & Copyright',
|
'editor_license' => 'Bewerker Licentie & Copyright',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'Deze editor is gemaakt als een fork van :lexicalLink welke is verstrekt onder de MIT-licentie.',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => 'Volledige licentieinformatie kan hier gevonden worden.',
|
||||||
'editor_tiny_license' => 'Deze editor is gemaakt met behulp van :tinyLink welke is verstrekt onder de MIT-licentie.',
|
'editor_tiny_license' => 'Deze editor is gemaakt met behulp van :tinyLink welke is verstrekt onder de MIT-licentie.',
|
||||||
'editor_tiny_license_link' => 'De copyright- en licentiegegevens van TinyMCE vindt u hier.',
|
'editor_tiny_license_link' => 'De copyright- en licentiegegevens van TinyMCE vindt u hier.',
|
||||||
'save_continue' => 'Pagina opslaan en verdergaan',
|
'save_continue' => 'Pagina opslaan en verdergaan',
|
||||||
|
|
|
@ -58,11 +58,11 @@ return [
|
||||||
'import_uploaded_at' => 'Geüpload :relativeTime',
|
'import_uploaded_at' => 'Geüpload :relativeTime',
|
||||||
'import_uploaded_by' => 'Geüpload door',
|
'import_uploaded_by' => 'Geüpload door',
|
||||||
'import_location' => 'Importlocatie',
|
'import_location' => 'Importlocatie',
|
||||||
'import_location_desc' => 'Select a target location for your imported content. You\'ll need the relevant permissions to create within the location you choose.',
|
'import_location_desc' => 'Selecteer een locatie voor de geïmporteerde inhoud. Je hebt de bijbehorende machtigingen nodig op de importlocatie.',
|
||||||
'import_delete_confirm' => 'Are you sure you want to delete this import?',
|
'import_delete_confirm' => 'Weet je zeker dat je deze import wilt verwijderen?',
|
||||||
'import_delete_desc' => 'This will delete the uploaded import ZIP file, and cannot be undone.',
|
'import_delete_desc' => 'Dit zal het Zip-bestand van de import permanent verwijderen.',
|
||||||
'import_errors' => 'Importeerfouten',
|
'import_errors' => 'Importeerfouten',
|
||||||
'import_errors_desc' => 'The follow errors occurred during the import attempt:',
|
'import_errors_desc' => 'De volgende fouten deden zich voor tijdens het importeren:',
|
||||||
|
|
||||||
// Permissions and restrictions
|
// Permissions and restrictions
|
||||||
'permissions' => 'Machtigingen',
|
'permissions' => 'Machtigingen',
|
||||||
|
@ -373,7 +373,7 @@ return [
|
||||||
'attachments_link_attached' => 'Hyperlink succesvol gekoppeld aan de pagina',
|
'attachments_link_attached' => 'Hyperlink succesvol gekoppeld aan de pagina',
|
||||||
'templates' => 'Sjablonen',
|
'templates' => 'Sjablonen',
|
||||||
'templates_set_as_template' => 'Pagina is een sjabloon',
|
'templates_set_as_template' => 'Pagina is een sjabloon',
|
||||||
'templates_explain_set_as_template' => 'Je kan deze pagina als sjabloon instellen zodat de inhoud gebruikt kan worden bij het maken van andere pagina\'s. Andere gebruikers kunnen dit sjabloon gebruiken als ze de machtiging hebben voor deze pagina.',
|
'templates_explain_set_as_template' => 'Je kan deze pagina als sjabloon instellen zodat de inhoud gebruikt kan worden bij het maken van andere pagina\'s. Andere gebruikers kunnen dit sjabloon gebruiken als ze de machtiging hebben om deze pagina te zien.',
|
||||||
'templates_replace_content' => 'Pagina-inhoud vervangen',
|
'templates_replace_content' => 'Pagina-inhoud vervangen',
|
||||||
'templates_append_content' => 'Toevoegen aan pagina-inhoud',
|
'templates_append_content' => 'Toevoegen aan pagina-inhoud',
|
||||||
'templates_prepend_content' => 'Voeg vooraan toe aan pagina-inhoud',
|
'templates_prepend_content' => 'Voeg vooraan toe aan pagina-inhoud',
|
||||||
|
|
|
@ -107,15 +107,15 @@ return [
|
||||||
|
|
||||||
// Import
|
// Import
|
||||||
'import_zip_cant_read' => 'Kon het Zip-bestand niet lezen.',
|
'import_zip_cant_read' => 'Kon het Zip-bestand niet lezen.',
|
||||||
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
|
'import_zip_cant_decode_data' => 'Kon de data.json Zip-inhoud niet vinden of decoderen.',
|
||||||
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
|
'import_zip_no_data' => 'Zip-bestand bevat niet de verwachte boek, hoofdstuk of pagina-inhoud.',
|
||||||
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
|
'import_validation_failed' => 'De validatie van het Zip-bestand is mislukt met de volgende fouten:',
|
||||||
'import_zip_failed_notification' => 'Importeren van het Zip-bestand is mislukt.',
|
'import_zip_failed_notification' => 'Importeren van het Zip-bestand is mislukt.',
|
||||||
'import_perms_books' => 'You are lacking the required permissions to create books.',
|
'import_perms_books' => 'Je mist de vereiste machtigingen om boeken te maken.',
|
||||||
'import_perms_chapters' => 'You are lacking the required permissions to create chapters.',
|
'import_perms_chapters' => 'Je mist de vereiste machtigingen om hoofdstukken te maken.',
|
||||||
'import_perms_pages' => 'You are lacking the required permissions to create pages.',
|
'import_perms_pages' => 'Je mist de vereiste machtigingen om pagina\'s te maken.',
|
||||||
'import_perms_images' => 'You are lacking the required permissions to create images.',
|
'import_perms_images' => 'Je mist de vereiste machtigingen om afbeeldingen toe te voegen.',
|
||||||
'import_perms_attachments' => 'You are lacking the required permission to create attachments.',
|
'import_perms_attachments' => 'Je mist de vereiste machtigingen om bijlagen toe te voegen.',
|
||||||
|
|
||||||
// API errors
|
// API errors
|
||||||
'api_no_authorization_found' => 'Geen autorisatie token gevonden',
|
'api_no_authorization_found' => 'Geen autorisatie token gevonden',
|
||||||
|
|
|
@ -155,7 +155,7 @@ return [
|
||||||
'role_external_auth_id' => 'Externe authenticatie ID\'s',
|
'role_external_auth_id' => 'Externe authenticatie ID\'s',
|
||||||
'role_system' => 'Systeem Machtigingen',
|
'role_system' => 'Systeem Machtigingen',
|
||||||
'role_manage_users' => 'Gebruikers beheren',
|
'role_manage_users' => 'Gebruikers beheren',
|
||||||
'role_manage_roles' => 'Beheer rollen & rolmachtigingen',
|
'role_manage_roles' => 'Beheer rollen & machtigingen',
|
||||||
'role_manage_entity_permissions' => 'Beheer alle machtigingen voor boeken, hoofdstukken en pagina\'s',
|
'role_manage_entity_permissions' => 'Beheer alle machtigingen voor boeken, hoofdstukken en pagina\'s',
|
||||||
'role_manage_own_entity_permissions' => 'Beheer machtigingen van je eigen boek, hoofdstuk & pagina\'s',
|
'role_manage_own_entity_permissions' => 'Beheer machtigingen van je eigen boek, hoofdstuk & pagina\'s',
|
||||||
'role_manage_page_templates' => 'Paginasjablonen beheren',
|
'role_manage_page_templates' => 'Paginasjablonen beheren',
|
||||||
|
|
|
@ -105,10 +105,10 @@ return [
|
||||||
'url' => ':attribute formaat is ongeldig.',
|
'url' => ':attribute formaat is ongeldig.',
|
||||||
'uploaded' => 'Het bestand kon niet worden geüpload. De server accepteert mogelijk geen bestanden van deze grootte.',
|
'uploaded' => 'Het bestand kon niet worden geüpload. De server accepteert mogelijk geen bestanden van deze grootte.',
|
||||||
|
|
||||||
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
|
'zip_file' => 'Het \':attribute\' veld moet verwijzen naar een bestand in de ZIP.',
|
||||||
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
|
'zip_file_mime' => 'Het \':attribute\' veld moet verwijzen naar een bestand met het type :validTypes, vond :foundType.',
|
||||||
'zip_model_expected' => 'Data object expected but ":type" found.',
|
'zip_model_expected' => 'Dataobject verwacht maar vond ":type".',
|
||||||
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
|
'zip_unique' => ':attribute moet uniek zijn voor het objecttype binnen de ZIP.',
|
||||||
|
|
||||||
// Custom validation lines
|
// Custom validation lines
|
||||||
'custom' => [
|
'custom' => [
|
||||||
|
|
|
@ -40,14 +40,14 @@ return [
|
||||||
'book_sort_notification' => 'Livro reordenado com sucesso',
|
'book_sort_notification' => 'Livro reordenado com sucesso',
|
||||||
|
|
||||||
// Bookshelves
|
// Bookshelves
|
||||||
'bookshelf_create' => 'prateleira criada',
|
'bookshelf_create' => 'estante criada',
|
||||||
'bookshelf_create_notification' => 'Prateleira criada com sucesso',
|
'bookshelf_create_notification' => 'Prateleira criada com sucesso',
|
||||||
'bookshelf_create_from_book' => 'livro convertido em estante',
|
'bookshelf_create_from_book' => 'livro convertido em estante',
|
||||||
'bookshelf_create_from_book_notification' => 'Capítulo convertido com sucesso em um livro',
|
'bookshelf_create_from_book_notification' => 'Livro convertido com sucesso em uma estante',
|
||||||
'bookshelf_update' => 'prateleira atualizada',
|
'bookshelf_update' => 'estante atualizada',
|
||||||
'bookshelf_update_notification' => 'Prateleira atualizada com sucesso',
|
'bookshelf_update_notification' => 'Estante atualizada com sucesso',
|
||||||
'bookshelf_delete' => 'prateleira excluída',
|
'bookshelf_delete' => 'estante excluída',
|
||||||
'bookshelf_delete_notification' => 'Prateleira excluída com sucesso',
|
'bookshelf_delete_notification' => 'Estante excluída com sucesso',
|
||||||
|
|
||||||
// Revisions
|
// Revisions
|
||||||
'revision_restore' => 'revisão restaurada',
|
'revision_restore' => 'revisão restaurada',
|
||||||
|
@ -85,12 +85,12 @@ return [
|
||||||
'webhook_delete_notification' => 'Webhook excluido com sucesso',
|
'webhook_delete_notification' => 'Webhook excluido com sucesso',
|
||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
'import_create' => 'created import',
|
'import_create' => 'importação criada',
|
||||||
'import_create_notification' => 'Import successfully uploaded',
|
'import_create_notification' => 'Importação carregada com sucesso',
|
||||||
'import_run' => 'updated import',
|
'import_run' => 'importação atualizada',
|
||||||
'import_run_notification' => 'Content successfully imported',
|
'import_run_notification' => 'Conteúdo importado com sucesso',
|
||||||
'import_delete' => 'deleted import',
|
'import_delete' => 'importação excluída',
|
||||||
'import_delete_notification' => 'Import successfully deleted',
|
'import_delete_notification' => 'Importação excluída com sucesso',
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
'user_create' => 'usuário criado',
|
'user_create' => 'usuário criado',
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
return [
|
return [
|
||||||
|
|
||||||
// Buttons
|
// Buttons
|
||||||
'cancel' => 'Cancela',
|
'cancel' => 'Cancelar',
|
||||||
'close' => 'Fecha',
|
'close' => 'Fechar',
|
||||||
'confirm' => 'Confirma',
|
'confirm' => 'Confirmar',
|
||||||
'back' => 'Volta',
|
'back' => 'Voltar',
|
||||||
'save' => 'Salva',
|
'save' => 'Salvar',
|
||||||
'continue' => 'Continua',
|
'continue' => 'Continuar',
|
||||||
'select' => 'Seleciona',
|
'select' => 'Selecionar',
|
||||||
'toggle_all' => 'Alternar Tudo',
|
'toggle_all' => 'Alternar Tudo',
|
||||||
'more' => 'Mais
|
'more' => 'Mais
|
||||||
',
|
',
|
||||||
|
|
|
@ -40,12 +40,12 @@ return [
|
||||||
'callout_success' => 'Sucesso',
|
'callout_success' => 'Sucesso',
|
||||||
'callout_warning' => 'Atenção',
|
'callout_warning' => 'Atenção',
|
||||||
'callout_danger' => 'Perigo',
|
'callout_danger' => 'Perigo',
|
||||||
'bold' => 'Bold',
|
'bold' => 'Negrito',
|
||||||
'italic' => 'Itálico',
|
'italic' => 'Itálico',
|
||||||
'underline' => 'Sublinhar',
|
'underline' => 'Sublinhado',
|
||||||
'strikethrough' => 'Riscado',
|
'strikethrough' => 'Riscado',
|
||||||
'superscript' => 'Superinscrição',
|
'superscript' => 'Sobrescrito',
|
||||||
'subscript' => 'Subscrição',
|
'subscript' => 'Subscrito',
|
||||||
'text_color' => 'Cor do texto',
|
'text_color' => 'Cor do texto',
|
||||||
'custom_color' => 'Cor personalizada',
|
'custom_color' => 'Cor personalizada',
|
||||||
'remove_color' => 'Remover cor',
|
'remove_color' => 'Remover cor',
|
||||||
|
@ -163,8 +163,8 @@ return [
|
||||||
'about' => 'Sobre o editor',
|
'about' => 'Sobre o editor',
|
||||||
'about_title' => 'Sobre o Editor WYSIWYG',
|
'about_title' => 'Sobre o Editor WYSIWYG',
|
||||||
'editor_license' => 'Licença do Editor e Direitos Autorais',
|
'editor_license' => 'Licença do Editor e Direitos Autorais',
|
||||||
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
|
'editor_lexical_license' => 'Este editor é criado como uma bifurcação de :lexicalLink distribuído sob a licença MIT.',
|
||||||
'editor_lexical_license_link' => 'Full license details can be found here.',
|
'editor_lexical_license_link' => 'Aqui podem ser encontrados detalhes da licença.',
|
||||||
'editor_tiny_license' => 'Este editor é construído usando :tinyLink que é fornecido sob a licença MIT.',
|
'editor_tiny_license' => 'Este editor é construído usando :tinyLink que é fornecido sob a licença MIT.',
|
||||||
'editor_tiny_license_link' => 'Os dados relativos aos direitos de autor e à licença do TinyMCE podem ser encontrados aqui.',
|
'editor_tiny_license_link' => 'Os dados relativos aos direitos de autor e à licença do TinyMCE podem ser encontrados aqui.',
|
||||||
'save_continue' => 'Salvar Página e Continuar',
|
'save_continue' => 'Salvar Página e Continuar',
|
||||||
|
|
|
@ -17,13 +17,13 @@ return [
|
||||||
'recent_activity' => 'Atividades recentes',
|
'recent_activity' => 'Atividades recentes',
|
||||||
'create_now' => 'Criar agora',
|
'create_now' => 'Criar agora',
|
||||||
'revisions' => 'Revisões',
|
'revisions' => 'Revisões',
|
||||||
'meta_revision' => 'Revisão #: contagem de revisões',
|
'meta_revision' => 'Revisão #:revisionCount',
|
||||||
'meta_created' => 'Criado: duração de tempo',
|
'meta_created' => 'Criado :timeLength',
|
||||||
'meta_created_name' => 'Criado: duração de tempo por usuário',
|
'meta_created_name' => 'Criado :timeLength por :user',
|
||||||
'meta_updated' => 'Atualizado: duração de tempo',
|
'meta_updated' => 'Atualizado :timeLength',
|
||||||
'meta_updated_name' => 'Atualizado: duração de tempo por usuário',
|
'meta_updated_name' => 'Atualizado: :timeLength por :user',
|
||||||
'meta_owned_name' => 'Propriedade de: usuário',
|
'meta_owned_name' => 'Propriedade de :user',
|
||||||
'meta_reference_count' => 'Referenciado por: count item|Referenciado por: count itens',
|
'meta_reference_count' => 'Referenciado por :count item|Referenciado por :count itens',
|
||||||
'entity_select' => 'Seleção de entidade',
|
'entity_select' => 'Seleção de entidade',
|
||||||
'entity_select_lack_permission' => 'Você não tem as permissões necessárias para selecionar este ‘item’',
|
'entity_select_lack_permission' => 'Você não tem as permissões necessárias para selecionar este ‘item’',
|
||||||
'images' => 'Imagens',
|
'images' => 'Imagens',
|
||||||
|
@ -39,30 +39,30 @@ return [
|
||||||
'export_pdf' => 'Arquivo PDF',
|
'export_pdf' => 'Arquivo PDF',
|
||||||
'export_text' => 'Arquivo de texto simples',
|
'export_text' => 'Arquivo de texto simples',
|
||||||
'export_md' => 'Arquivo de redução',
|
'export_md' => 'Arquivo de redução',
|
||||||
'export_zip' => 'Portable ZIP',
|
'export_zip' => 'ZIP portátil',
|
||||||
'default_template' => 'Modelo padrão de página',
|
'default_template' => 'Modelo padrão de página',
|
||||||
'default_template_explain' => 'Atribuir o modelo de página que será usado como padrão para todas as páginas criadas neste livro. Tenha em mente que isto será usado apenas se o criador da página tiver acesso de visualização ao modelo de página escolhido.',
|
'default_template_explain' => 'Atribuir o modelo de página que será usado como padrão para todas as páginas criadas neste livro. Tenha em mente que isto será usado apenas se o criador da página tiver acesso de visualização ao modelo de página escolhido.',
|
||||||
'default_template_select' => 'Selecione uma página de modelo',
|
'default_template_select' => 'Selecione uma página de modelo',
|
||||||
'import' => 'Import',
|
'import' => 'Importação',
|
||||||
'import_validate' => 'Validate Import',
|
'import_validate' => 'Validar Importação',
|
||||||
'import_desc' => 'Import books, chapters & pages using a portable zip export from the same, or a different, instance. Select a ZIP file to proceed. After the file has been uploaded and validated you\'ll be able to configure & confirm the import in the next view.',
|
'import_desc' => 'Importar livros, capítulos e páginas usando uma exportação zip portátil da mesma ou de uma instância diferente. Selecione um arquivo ZIP para prosseguir. Após a carga e validação do arquivo, você será capaz de configurar e confirmar a importação na próxima visualização.',
|
||||||
'import_zip_select' => 'Select ZIP file to upload',
|
'import_zip_select' => 'Selecione o arquivo ZIP para carregar',
|
||||||
'import_zip_validation_errors' => 'Errors were detected while validating the provided ZIP file:',
|
'import_zip_validation_errors' => 'Foram detectados erros ao validar o arquivo ZIP:',
|
||||||
'import_pending' => 'Pending Imports',
|
'import_pending' => 'Importações pendentes',
|
||||||
'import_pending_none' => 'No imports have been started.',
|
'import_pending_none' => 'Nenhuma importação foi iniciada.',
|
||||||
'import_continue' => 'Continue Import',
|
'import_continue' => 'Continuar a importação',
|
||||||
'import_continue_desc' => 'Review the content due to be imported from the uploaded ZIP file. When ready, run the import to add its contents to this system. The uploaded ZIP import file will be automatically removed on successful import.',
|
'import_continue_desc' => 'Revise o conteúdo que deve ser importado do arquivo ZIP carregado. Quando estiver pronto, execute a importação para adicionar seu conteúdo a este sistema. O arquivo ZIP importado será automaticamente removido quando a importação for bem sucedida.',
|
||||||
'import_details' => 'Import Details',
|
'import_details' => 'Detalhes da importação',
|
||||||
'import_run' => 'Run Import',
|
'import_run' => 'Executar Importação',
|
||||||
'import_size' => ':size Import ZIP Size',
|
'import_size' => ':size Tamanho do ZIP',
|
||||||
'import_uploaded_at' => 'Uploaded :relativeTime',
|
'import_uploaded_at' => 'Carregado :relativeTime',
|
||||||
'import_uploaded_by' => 'Uploaded by',
|
'import_uploaded_by' => 'Enviado por',
|
||||||
'import_location' => 'Import Location',
|
'import_location' => 'Local da importação',
|
||||||
'import_location_desc' => 'Select a target location for your imported content. You\'ll need the relevant permissions to create within the location you choose.',
|
'import_location_desc' => 'Selecione um local para o conteúdo importado. Você precisa das permissões necessárias para criar no local escolhido.',
|
||||||
'import_delete_confirm' => 'Are you sure you want to delete this import?',
|
'import_delete_confirm' => 'Tem certeza que deseja excluir esta importação?',
|
||||||
'import_delete_desc' => 'This will delete the uploaded import ZIP file, and cannot be undone.',
|
'import_delete_desc' => 'Isto irá excluir o arquivo ZIP de importação carregado e não poderá ser desfeito.',
|
||||||
'import_errors' => 'Import Errors',
|
'import_errors' => 'Erros de importação',
|
||||||
'import_errors_desc' => 'The follow errors occurred during the import attempt:',
|
'import_errors_desc' => 'Os seguintes erros ocorreram durante a tentativa de importação:',
|
||||||
|
|
||||||
// Permissions and restrictions
|
// Permissions and restrictions
|
||||||
'permissions' => 'Permissões',
|
'permissions' => 'Permissões',
|
||||||
|
@ -78,10 +78,10 @@ return [
|
||||||
|
|
||||||
// Search
|
// Search
|
||||||
'search_results' => 'Resultado(s) da Pesquisa',
|
'search_results' => 'Resultado(s) da Pesquisa',
|
||||||
'search_total_results_found' => ':count resultado encontrado (contagem de resultados) :count resultados totais encontrados',
|
'search_total_results_found' => ':count resultado encontrado|:count resultados encontrados',
|
||||||
'search_clear' => 'Limpar Pesquisa',
|
'search_clear' => 'Limpar Pesquisa',
|
||||||
'search_no_pages' => 'Nenhuma página corresponde a esta pesquisa',
|
'search_no_pages' => 'Nenhuma página corresponde a esta pesquisa',
|
||||||
'search_for_term' => 'Pesquisar por: termo',
|
'search_for_term' => 'Pesquisar por :term',
|
||||||
'search_more' => 'Mais resultados',
|
'search_more' => 'Mais resultados',
|
||||||
'search_advanced' => 'Pesquisa avançada',
|
'search_advanced' => 'Pesquisa avançada',
|
||||||
'search_terms' => 'Termos da pesquisa',
|
'search_terms' => 'Termos da pesquisa',
|
||||||
|
@ -246,7 +246,7 @@ return [
|
||||||
'pages_edit_switch_to_markdown_stable' => '(Conteúdo Estável)',
|
'pages_edit_switch_to_markdown_stable' => '(Conteúdo Estável)',
|
||||||
'pages_edit_switch_to_wysiwyg' => 'Alternar para o Editor WYSIWYG',
|
'pages_edit_switch_to_wysiwyg' => 'Alternar para o Editor WYSIWYG',
|
||||||
'pages_edit_switch_to_new_wysiwyg' => 'Mudar para o novo WYSIWYG',
|
'pages_edit_switch_to_new_wysiwyg' => 'Mudar para o novo WYSIWYG',
|
||||||
'pages_edit_switch_to_new_wysiwyg_desc' => '(No Teste Alfa)',
|
'pages_edit_switch_to_new_wysiwyg_desc' => '(Em teste alfa)',
|
||||||
'pages_edit_set_changelog' => 'Relatar Alterações',
|
'pages_edit_set_changelog' => 'Relatar Alterações',
|
||||||
'pages_edit_enter_changelog_desc' => 'Digite uma breve descrição das alterações efetuadas por você',
|
'pages_edit_enter_changelog_desc' => 'Digite uma breve descrição das alterações efetuadas por você',
|
||||||
'pages_edit_enter_changelog' => 'Insira Alterações',
|
'pages_edit_enter_changelog' => 'Insira Alterações',
|
||||||
|
|
|
@ -22,17 +22,17 @@ return [
|
||||||
'saml_already_logged_in' => '\'Login\' já efetuado',
|
'saml_already_logged_in' => '\'Login\' já efetuado',
|
||||||
'saml_no_email_address' => 'Não foi possível encontrar um endereço de mensagem eletrônica para este usuário nos dados providos pelo sistema de autenticação externa',
|
'saml_no_email_address' => 'Não foi possível encontrar um endereço de mensagem eletrônica para este usuário nos dados providos pelo sistema de autenticação externa',
|
||||||
'saml_invalid_response_id' => 'A requisição do sistema de autenticação externa não foi reconhecida por um processo iniciado por esta aplicação. Após o \'login\', navegar para o caminho anterior pode causar um problema.',
|
'saml_invalid_response_id' => 'A requisição do sistema de autenticação externa não foi reconhecida por um processo iniciado por esta aplicação. Após o \'login\', navegar para o caminho anterior pode causar um problema.',
|
||||||
'saml_fail_authed' => '\'Login\' utilizando :sistema falhou. Sistema não forneceu autorização bem sucedida',
|
'saml_fail_authed' => 'Login utilizando :system falhou. Sistema não forneceu autorização bem sucedida',
|
||||||
'oidc_already_logged_in' => '\'Login\' já efetuado',
|
'oidc_already_logged_in' => '\'Login\' já efetuado',
|
||||||
'oidc_no_email_address' => 'Não foi possível encontrar um endereço de mensagem eletrônica para este usuário, nos dados fornecidos pelo sistema de autenticação externa',
|
'oidc_no_email_address' => 'Não foi possível encontrar um endereço de mensagem eletrônica para este usuário, nos dados fornecidos pelo sistema de autenticação externa',
|
||||||
'oidc_fail_authed' => '\'Login\' usando: sistema falhou, o sistema não forneceu autorização com sucesso',
|
'oidc_fail_authed' => 'Login usando :system falhou, o sistema não forneceu autorização com sucesso',
|
||||||
'social_no_action_defined' => 'Nenhuma ação definida',
|
'social_no_action_defined' => 'Nenhuma ação definida',
|
||||||
'social_login_bad_response' => "Erro recebido durante o 'login' :socialAccount: \n: error",
|
'social_login_bad_response' => "Erro recebido durante o 'login' :socialAccount: \n: error",
|
||||||
'social_account_in_use' => 'Essa conta: conta social já está em uso. Por favor, tente entrar utilizando a opção :conta social.',
|
'social_account_in_use' => 'Essa conta :socialAccount já está em uso. Por favor, tente entrar utilizando a opção :socialAccount.',
|
||||||
'social_account_email_in_use' => 'O endereço eletrônico: endereço eletrônico já está em uso. Se você já tem uma conta você poderá se conectar a conta social a partir das configurações de seu perfil.',
|
'social_account_email_in_use' => 'O e-mail :email já está em uso. Se você já tem uma conta você poderá se conectar a conta :socialAccount a partir das configurações de seu perfil.',
|
||||||
'social_account_existing' => 'Essa conta: conta social já está vinculada a esse perfil.',
|
'social_account_existing' => 'Essa conta :socialAccount já está vinculada a esse perfil.',
|
||||||
'social_account_already_used_existing' => 'Essa conta: conta social já está sendo utilizada por outro usuário.',
|
'social_account_already_used_existing' => 'Essa conta :socialAccount já está sendo utilizada por outro usuário.',
|
||||||
'social_account_not_used' => 'Essa conta: conta social não está vinculada a nenhum usuário. Por favor, vincule a conta nas suas configurações de perfil. ',
|
'social_account_not_used' => 'Essa conta :socialAccount não está vinculada a nenhum usuário. Por favor vincule a conta nas suas configurações de perfil. ',
|
||||||
'social_account_register_instructions' => 'Se você não tem uma conta, você poderá se cadastrar usando a opção: conta social.',
|
'social_account_register_instructions' => 'Se você não tem uma conta, você poderá se cadastrar usando a opção: conta social.',
|
||||||
'social_driver_not_found' => 'Social driver não encontrado',
|
'social_driver_not_found' => 'Social driver não encontrado',
|
||||||
'social_driver_not_configured' => 'Seus parâmetros sociais de: conta social não estão configurados corretamente.',
|
'social_driver_not_configured' => 'Seus parâmetros sociais de: conta social não estão configurados corretamente.',
|
||||||
|
@ -40,8 +40,8 @@ return [
|
||||||
'login_user_not_found' => 'Não foi possível encontrar um usuário para esta ação.',
|
'login_user_not_found' => 'Não foi possível encontrar um usuário para esta ação.',
|
||||||
|
|
||||||
// System
|
// System
|
||||||
'path_not_writable' => 'O caminho de destino de ‘upload’ de arquivo não possui permissão de escrita. Certifique-se que ele possui direitos de escrita no servidor.',
|
'path_not_writable' => 'O caminho de destino (:filePath) de upload de arquivo não possui permissão de escrita. Certifique-se que ele possui direitos de escrita no servidor.',
|
||||||
'cannot_get_image_from_url' => 'Não foi possível obter a imagem a partir de: URL',
|
'cannot_get_image_from_url' => 'Não foi possível obter a imagem a partir de :url',
|
||||||
'cannot_create_thumbs' => 'O servidor não pôde criar as miniaturas de imagem. Por favor, verifique se a extensão GD PHP está instalada.',
|
'cannot_create_thumbs' => 'O servidor não pôde criar as miniaturas de imagem. Por favor, verifique se a extensão GD PHP está instalada.',
|
||||||
'server_upload_limit' => 'O servidor não permite o ‘upload’ de arquivos com esse tamanho. Por favor, tente um tamanho de arquivo menor.',
|
'server_upload_limit' => 'O servidor não permite o ‘upload’ de arquivos com esse tamanho. Por favor, tente um tamanho de arquivo menor.',
|
||||||
'server_post_limit' => 'O servidor não pode receber a quantidade de dados fornecida. Tente novamente com menos dados ou um arquivo menor.',
|
'server_post_limit' => 'O servidor não pode receber a quantidade de dados fornecida. Tente novamente com menos dados ou um arquivo menor.',
|
||||||
|
@ -103,20 +103,20 @@ return [
|
||||||
'image_not_found_details' => 'Se você esperava que esta imagem existisse, ela pode ter sido excluída.',
|
'image_not_found_details' => 'Se você esperava que esta imagem existisse, ela pode ter sido excluída.',
|
||||||
'return_home' => 'Retornar à página inicial',
|
'return_home' => 'Retornar à página inicial',
|
||||||
'error_occurred' => 'Ocorreu um Erro',
|
'error_occurred' => 'Ocorreu um Erro',
|
||||||
'app_down' => 'Agora está baixo',
|
'app_down' => ':appName está fora do ar no momento',
|
||||||
'back_soon' => 'Vai estar de volta em breve.',
|
'back_soon' => 'Vai estar de volta em breve.',
|
||||||
|
|
||||||
// Import
|
// Import
|
||||||
'import_zip_cant_read' => 'Could not read ZIP file.',
|
'import_zip_cant_read' => 'Não foi possível ler o arquivo ZIP.',
|
||||||
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
|
'import_zip_cant_decode_data' => 'Não foi possível encontrar e decodificar o conteúdo ZIP data.json.',
|
||||||
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
|
'import_zip_no_data' => 'Os dados do arquivo ZIP não têm o conteúdo esperado livro, capítulo ou página.',
|
||||||
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
|
'import_validation_failed' => 'Falhou na validação da importação do ZIP com erros:',
|
||||||
'import_zip_failed_notification' => 'Failed to import ZIP file.',
|
'import_zip_failed_notification' => 'Falhou ao importar arquivo ZIP.',
|
||||||
'import_perms_books' => 'You are lacking the required permissions to create books.',
|
'import_perms_books' => 'Você não tem as permissões necessárias para criar livros.',
|
||||||
'import_perms_chapters' => 'You are lacking the required permissions to create chapters.',
|
'import_perms_chapters' => 'Você não tem as permissões necessárias para criar capítulos.',
|
||||||
'import_perms_pages' => 'You are lacking the required permissions to create pages.',
|
'import_perms_pages' => 'Você não tem as permissões necessárias para criar páginas.',
|
||||||
'import_perms_images' => 'You are lacking the required permissions to create images.',
|
'import_perms_images' => 'Está não tem permissões necessárias para criar imagens.',
|
||||||
'import_perms_attachments' => 'You are lacking the required permission to create attachments.',
|
'import_perms_attachments' => 'Você não tem a permissão necessária para criar anexos.',
|
||||||
|
|
||||||
// API errors
|
// API errors
|
||||||
'api_no_authorization_found' => 'Nenhum código de autorização encontrado na requisição',
|
'api_no_authorization_found' => 'Nenhum código de autorização encontrado na requisição',
|
||||||
|
|
|
@ -162,7 +162,7 @@ return [
|
||||||
'role_access_api' => 'Acessar API do sistema',
|
'role_access_api' => 'Acessar API do sistema',
|
||||||
'role_manage_settings' => 'Gerenciar configurações da aplicação',
|
'role_manage_settings' => 'Gerenciar configurações da aplicação',
|
||||||
'role_export_content' => 'Exportar conteúdo',
|
'role_export_content' => 'Exportar conteúdo',
|
||||||
'role_import_content' => 'Import content',
|
'role_import_content' => 'Importar conteúdo',
|
||||||
'role_editor_change' => 'Alterar página de edição',
|
'role_editor_change' => 'Alterar página de edição',
|
||||||
'role_notifications' => 'Receber e gerenciar notificações',
|
'role_notifications' => 'Receber e gerenciar notificações',
|
||||||
'role_asset' => 'Permissões de Ativos',
|
'role_asset' => 'Permissões de Ativos',
|
||||||
|
|
|
@ -105,10 +105,10 @@ return [
|
||||||
'url' => 'O formato da URL :attribute é inválido.',
|
'url' => 'O formato da URL :attribute é inválido.',
|
||||||
'uploaded' => 'O arquivo não pôde ser carregado. O servidor pode não aceitar arquivos deste tamanho.',
|
'uploaded' => 'O arquivo não pôde ser carregado. O servidor pode não aceitar arquivos deste tamanho.',
|
||||||
|
|
||||||
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
|
'zip_file' => 'O :attribute precisa fazer referência a um arquivo do ZIP.',
|
||||||
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
|
'zip_file_mime' => 'O :attribute precisa fazer referência a um arquivo do tipo :validTypes, encontrado :foundType.',
|
||||||
'zip_model_expected' => 'Data object expected but ":type" found.',
|
'zip_model_expected' => 'Objeto de dados esperado, mas ":type" encontrado.',
|
||||||
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
|
'zip_unique' => 'O :attribute deve ser único para o tipo de objeto dentro do ZIP.',
|
||||||
|
|
||||||
// Custom validation lines
|
// Custom validation lines
|
||||||
'custom' => [
|
'custom' => [
|
||||||
|
|
|
@ -51,8 +51,8 @@ return [
|
||||||
|
|
||||||
// Revisions
|
// Revisions
|
||||||
'revision_restore' => 'restored revision',
|
'revision_restore' => 'restored revision',
|
||||||
'revision_delete' => 'deleted revision',
|
'revision_delete' => 'odstránil(a) revíziu',
|
||||||
'revision_delete_notification' => 'Revision successfully deleted',
|
'revision_delete_notification' => 'Revízia úspešne odstránená',
|
||||||
|
|
||||||
// Favourites
|
// Favourites
|
||||||
'favourite_add_notification' => '":name" bol pridaný medzi obľúbené',
|
'favourite_add_notification' => '":name" bol pridaný medzi obľúbené',
|
||||||
|
@ -62,7 +62,7 @@ return [
|
||||||
'watch_update_level_notification' => 'Watch preferences successfully updated',
|
'watch_update_level_notification' => 'Watch preferences successfully updated',
|
||||||
|
|
||||||
// Auth
|
// Auth
|
||||||
'auth_login' => 'logged in',
|
'auth_login' => 'sa prihlásil(a)',
|
||||||
'auth_register' => 'registered as new user',
|
'auth_register' => 'registered as new user',
|
||||||
'auth_password_reset_request' => 'requested user password reset',
|
'auth_password_reset_request' => 'requested user password reset',
|
||||||
'auth_password_reset_update' => 'reset user password',
|
'auth_password_reset_update' => 'reset user password',
|
||||||
|
@ -123,8 +123,8 @@ return [
|
||||||
|
|
||||||
// Comments
|
// Comments
|
||||||
'commented_on' => 'komentoval(a)',
|
'commented_on' => 'komentoval(a)',
|
||||||
'comment_create' => 'added comment',
|
'comment_create' => 'pridal(a) komentár',
|
||||||
'comment_update' => 'updated comment',
|
'comment_update' => 'aktualizoval(a) komentár',
|
||||||
'comment_delete' => 'odstrániť komentár',
|
'comment_delete' => 'odstrániť komentár',
|
||||||
|
|
||||||
// Other
|
// Other
|
||||||
|
|
|
@ -445,8 +445,12 @@ export class Actions {
|
||||||
selectionRange = selectionRange || this.#getSelectionRange();
|
selectionRange = selectionRange || this.#getSelectionRange();
|
||||||
const newDoc = this.editor.cm.state.toText(text);
|
const newDoc = this.editor.cm.state.toText(text);
|
||||||
const newSelectFrom = Math.min(selectionRange.from, newDoc.length);
|
const newSelectFrom = Math.min(selectionRange.from, newDoc.length);
|
||||||
|
const scrollTop = this.editor.cm.scrollDOM.scrollTop;
|
||||||
this.#dispatchChange(0, this.editor.cm.state.doc.length, text, newSelectFrom);
|
this.#dispatchChange(0, this.editor.cm.state.doc.length, text, newSelectFrom);
|
||||||
this.focus();
|
this.focus();
|
||||||
|
window.requestAnimationFrame(() => {
|
||||||
|
this.editor.cm.scrollDOM.scrollTop = scrollTop;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace Tests\Exports;
|
||||||
use BookStack\Entities\Models\Page;
|
use BookStack\Entities\Models\Page;
|
||||||
use BookStack\Exceptions\PdfExportException;
|
use BookStack\Exceptions\PdfExportException;
|
||||||
use BookStack\Exports\PdfGenerator;
|
use BookStack\Exports\PdfGenerator;
|
||||||
|
use FilesystemIterator;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class PdfExportTest extends TestCase
|
class PdfExportTest extends TestCase
|
||||||
|
@ -128,7 +129,7 @@ class PdfExportTest extends TestCase
|
||||||
}, PdfExportException::class);
|
}, PdfExportException::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_pdf_command_timout_option_limits_export_time()
|
public function test_pdf_command_timeout_option_limits_export_time()
|
||||||
{
|
{
|
||||||
$page = $this->entities->page();
|
$page = $this->entities->page();
|
||||||
$command = 'php -r \'sleep(4);\'';
|
$command = 'php -r \'sleep(4);\'';
|
||||||
|
@ -143,4 +144,19 @@ class PdfExportTest extends TestCase
|
||||||
}, PdfExportException::class,
|
}, PdfExportException::class,
|
||||||
"PDF Export via command failed due to timeout at 1 second(s)");
|
"PDF Export via command failed due to timeout at 1 second(s)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_pdf_command_option_does_not_leave_temp_files()
|
||||||
|
{
|
||||||
|
$tempDir = sys_get_temp_dir();
|
||||||
|
$startTempFileCount = iterator_count((new FileSystemIterator($tempDir, FilesystemIterator::SKIP_DOTS)));
|
||||||
|
|
||||||
|
$page = $this->entities->page();
|
||||||
|
$command = 'cp {input_html_path} {output_pdf_path}';
|
||||||
|
config()->set('exports.pdf_command', $command);
|
||||||
|
|
||||||
|
$this->asEditor()->get($page->getUrl('/export/pdf'));
|
||||||
|
|
||||||
|
$afterTempFileCount = iterator_count((new FileSystemIterator($tempDir, FilesystemIterator::SKIP_DOTS)));
|
||||||
|
$this->assertEquals($startTempFileCount, $afterTempFileCount);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ use BookStack\Entities\Repos\BookRepo;
|
||||||
use BookStack\Entities\Tools\PageContent;
|
use BookStack\Entities\Tools\PageContent;
|
||||||
use BookStack\Uploads\Attachment;
|
use BookStack\Uploads\Attachment;
|
||||||
use BookStack\Uploads\Image;
|
use BookStack\Uploads\Image;
|
||||||
|
use FilesystemIterator;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Illuminate\Testing\TestResponse;
|
use Illuminate\Testing\TestResponse;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
@ -60,6 +61,24 @@ class ZipExportTest extends TestCase
|
||||||
$this->assertEquals($instanceId, $zipInstanceId);
|
$this->assertEquals($instanceId, $zipInstanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_export_leaves_no_temp_files()
|
||||||
|
{
|
||||||
|
$tempDir = sys_get_temp_dir();
|
||||||
|
$startTempFileCount = iterator_count((new FileSystemIterator($tempDir, FilesystemIterator::SKIP_DOTS)));
|
||||||
|
|
||||||
|
$page = $this->entities->pageWithinChapter();
|
||||||
|
$this->asEditor();
|
||||||
|
$pageResp = $this->get($page->getUrl("/export/zip"));
|
||||||
|
$pageResp->streamedContent();
|
||||||
|
$pageResp->assertOk();
|
||||||
|
$this->get($page->chapter->getUrl("/export/zip"))->assertOk();
|
||||||
|
$this->get($page->book->getUrl("/export/zip"))->assertOk();
|
||||||
|
|
||||||
|
$afterTempFileCount = iterator_count((new FileSystemIterator($tempDir, FilesystemIterator::SKIP_DOTS)));
|
||||||
|
|
||||||
|
$this->assertEquals($startTempFileCount, $afterTempFileCount);
|
||||||
|
}
|
||||||
|
|
||||||
public function test_page_export()
|
public function test_page_export()
|
||||||
{
|
{
|
||||||
$page = $this->entities->page();
|
$page = $this->entities->page();
|
||||||
|
@ -404,6 +423,28 @@ class ZipExportTest extends TestCase
|
||||||
$this->assertStringContainsString("[Link to chapter]([[bsexport:chapter:{$chapter->id}]])", $pageData['markdown']);
|
$this->assertStringContainsString("[Link to chapter]([[bsexport:chapter:{$chapter->id}]])", $pageData['markdown']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_exports_rate_limited_low_for_guest_viewers()
|
||||||
|
{
|
||||||
|
$this->setSettings(['app-public' => 'true']);
|
||||||
|
|
||||||
|
$page = $this->entities->page();
|
||||||
|
for ($i = 0; $i < 4; $i++) {
|
||||||
|
$this->get($page->getUrl("/export/zip"))->assertOk();
|
||||||
|
}
|
||||||
|
$this->get($page->getUrl("/export/zip"))->assertStatus(429);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_exports_rate_limited_higher_for_logged_in_viewers()
|
||||||
|
{
|
||||||
|
$this->asAdmin();
|
||||||
|
|
||||||
|
$page = $this->entities->page();
|
||||||
|
for ($i = 0; $i < 10; $i++) {
|
||||||
|
$this->get($page->getUrl("/export/zip"))->assertOk();
|
||||||
|
}
|
||||||
|
$this->get($page->getUrl("/export/zip"))->assertStatus(429);
|
||||||
|
}
|
||||||
|
|
||||||
protected function extractZipResponse(TestResponse $response): ZipResultData
|
protected function extractZipResponse(TestResponse $response): ZipResultData
|
||||||
{
|
{
|
||||||
$zipData = $response->streamedContent();
|
$zipData = $response->streamedContent();
|
||||||
|
|
Loading…
Reference in New Issue