mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-07 03:09:44 +03:00
Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ac8ecad6b | ||
|
|
903e88c700 | ||
|
|
c0d5e158d7 | ||
|
|
99377d43c1 | ||
|
|
ebb1942fb8 | ||
|
|
152f7f3ad0 | ||
|
|
8a03442b5b | ||
|
|
e591f4896e | ||
|
|
6a7bc68b61 | ||
|
|
924f517217 | ||
|
|
150b40edc1 | ||
|
|
ed96aa820e | ||
|
|
63ec079b7b | ||
|
|
c17906c758 | ||
|
|
62d5701578 | ||
|
|
9f1a6947ab | ||
|
|
ae90776927 | ||
|
|
4489f65371 | ||
|
|
ee1e047964 | ||
|
|
8846f7d255 | ||
|
|
2523cee0e2 | ||
|
|
b5cc0a8e38 | ||
|
|
3bcbf6b9c5 | ||
|
|
573bc3ec45 |
6
.github/translators.txt
vendored
6
.github/translators.txt
vendored
@@ -327,3 +327,9 @@ H.-H. Peng (Hsins) :: Chinese Traditional
|
||||
Mosi Wang (mosiwang) :: Chinese Traditional
|
||||
骆言 (LawssssCat) :: Chinese Simplified
|
||||
Stickers Gaming Shøw (StickerSGSHOW) :: French
|
||||
Le Van Chinh (Chino) (lvanchinh86) :: Vietnamese
|
||||
Rubens nagios (rubenix) :: Catalan
|
||||
Patrick Dantas (pa-tiq) :: Portuguese, Brazilian
|
||||
Michal (michalgurcik) :: Slovak
|
||||
Nepomacs :: German
|
||||
Rubens (rubenix) :: Catalan
|
||||
|
||||
@@ -14,7 +14,8 @@ class UpdateUrl extends Command
|
||||
*/
|
||||
protected $signature = 'bookstack:update-url
|
||||
{oldUrl : URL to replace}
|
||||
{newUrl : URL to use as the replacement}';
|
||||
{newUrl : URL to use as the replacement}
|
||||
{--force : Force the operation to run, ignoring confirmations}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -23,25 +24,12 @@ class UpdateUrl extends Command
|
||||
*/
|
||||
protected $description = 'Find and replace the given URLs in your BookStack database';
|
||||
|
||||
protected $db;
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Connection $db)
|
||||
{
|
||||
$this->db = $db;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
public function handle(Connection $db)
|
||||
{
|
||||
$oldUrl = str_replace("'", '', $this->argument('oldUrl'));
|
||||
$newUrl = str_replace("'", '', $this->argument('newUrl'));
|
||||
@@ -67,7 +55,7 @@ class UpdateUrl extends Command
|
||||
|
||||
foreach ($columnsToUpdateByTable as $table => $columns) {
|
||||
foreach ($columns as $column) {
|
||||
$changeCount = $this->replaceValueInTable($table, $column, $oldUrl, $newUrl);
|
||||
$changeCount = $this->replaceValueInTable($db, $table, $column, $oldUrl, $newUrl);
|
||||
$this->info("Updated {$changeCount} rows in {$table}->{$column}");
|
||||
}
|
||||
}
|
||||
@@ -80,7 +68,7 @@ class UpdateUrl extends Command
|
||||
foreach ($columns as $column) {
|
||||
$oldJson = trim(json_encode($oldUrl), '"');
|
||||
$newJson = trim(json_encode($newUrl), '"');
|
||||
$changeCount = $this->replaceValueInTable($table, $column, $oldJson, $newJson);
|
||||
$changeCount = $this->replaceValueInTable($db, $table, $column, $oldJson, $newJson);
|
||||
$this->info("Updated {$changeCount} JSON encoded rows in {$table}->{$column}");
|
||||
}
|
||||
}
|
||||
@@ -97,13 +85,18 @@ class UpdateUrl extends Command
|
||||
* Perform a find+replace operations in the provided table and column.
|
||||
* Returns the count of rows changed.
|
||||
*/
|
||||
protected function replaceValueInTable(string $table, string $column, string $oldUrl, string $newUrl): int
|
||||
{
|
||||
$oldQuoted = $this->db->getPdo()->quote($oldUrl);
|
||||
$newQuoted = $this->db->getPdo()->quote($newUrl);
|
||||
protected function replaceValueInTable(
|
||||
Connection $db,
|
||||
string $table,
|
||||
string $column,
|
||||
string $oldUrl,
|
||||
string $newUrl
|
||||
): int {
|
||||
$oldQuoted = $db->getPdo()->quote($oldUrl);
|
||||
$newQuoted = $db->getPdo()->quote($newUrl);
|
||||
|
||||
return $this->db->table($table)->update([
|
||||
$column => $this->db->raw("REPLACE({$column}, {$oldQuoted}, {$newQuoted})"),
|
||||
return $db->table($table)->update([
|
||||
$column => $db->raw("REPLACE({$column}, {$oldQuoted}, {$newQuoted})"),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -113,6 +106,10 @@ class UpdateUrl extends Command
|
||||
*/
|
||||
protected function checkUserOkayToProceed(string $oldUrl, string $newUrl): bool
|
||||
{
|
||||
if ($this->option('force')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$dangerWarning = "This will search for \"{$oldUrl}\" in your database and replace it with \"{$newUrl}\".\n";
|
||||
$dangerWarning .= 'Are you sure you want to proceed?';
|
||||
$backupConfirmation = 'This operation could cause issues if used incorrectly. Have you made a backup of your existing database?';
|
||||
|
||||
Binary file not shown.
204
composer.lock
generated
204
composer.lock
generated
@@ -288,16 +288,16 @@
|
||||
},
|
||||
{
|
||||
"name": "barryvdh/laravel-snappy",
|
||||
"version": "v1.0.1",
|
||||
"version": "v1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/barryvdh/laravel-snappy.git",
|
||||
"reference": "283d9c908e4d63b328edea0ed841bc492b3b73fa"
|
||||
"reference": "940eec2d99b89cbc9bea2f493cf068382962a485"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/barryvdh/laravel-snappy/zipball/283d9c908e4d63b328edea0ed841bc492b3b73fa",
|
||||
"reference": "283d9c908e4d63b328edea0ed841bc492b3b73fa",
|
||||
"url": "https://api.github.com/repos/barryvdh/laravel-snappy/zipball/940eec2d99b89cbc9bea2f493cf068382962a485",
|
||||
"reference": "940eec2d99b89cbc9bea2f493cf068382962a485",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -350,7 +350,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/barryvdh/laravel-snappy/issues",
|
||||
"source": "https://github.com/barryvdh/laravel-snappy/tree/v1.0.1"
|
||||
"source": "https://github.com/barryvdh/laravel-snappy/tree/v1.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -362,7 +362,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-05T15:10:01+00:00"
|
||||
"time": "2023-04-07T10:38:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "brick/math",
|
||||
@@ -1378,21 +1378,21 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "7.5.1",
|
||||
"version": "7.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9"
|
||||
"reference": "fb7566caccf22d74d1ab270de3551f72a58399f5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/b964ca597e86b752cd994f27293e9fa6b6a95ed9",
|
||||
"reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5",
|
||||
"reference": "fb7566caccf22d74d1ab270de3551f72a58399f5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"guzzlehttp/promises": "^1.5",
|
||||
"guzzlehttp/promises": "^1.5.3 || ^2.0",
|
||||
"guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
|
||||
"php": "^7.2.5 || ^8.0",
|
||||
"psr/http-client": "^1.0",
|
||||
@@ -1404,7 +1404,8 @@
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.8.1",
|
||||
"ext-curl": "*",
|
||||
"php-http/client-integration-tests": "^3.0",
|
||||
"php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
|
||||
"php-http/message-factory": "^1.1",
|
||||
"phpunit/phpunit": "^8.5.29 || ^9.5.23",
|
||||
"psr/log": "^1.1 || ^2.0 || ^3.0"
|
||||
},
|
||||
@@ -1418,9 +1419,6 @@
|
||||
"bamarni-bin": {
|
||||
"bin-links": true,
|
||||
"forward-command": false
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "7.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -1486,7 +1484,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/guzzle/issues",
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.5.1"
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.7.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1502,20 +1500,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-17T16:30:08+00:00"
|
||||
"time": "2023-05-21T14:04:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "1.5.2",
|
||||
"version": "1.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598"
|
||||
"reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
|
||||
"reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1525,11 +1523,6 @@
|
||||
"symfony/phpunit-bridge": "^4.4 || ^5.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
@@ -1570,7 +1563,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/promises/issues",
|
||||
"source": "https://github.com/guzzle/promises/tree/1.5.2"
|
||||
"source": "https://github.com/guzzle/promises/tree/1.5.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1586,7 +1579,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-08-28T14:55:35+00:00"
|
||||
"time": "2023-05-21T12:31:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
@@ -2531,19 +2524,20 @@
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem",
|
||||
"version": "3.14.0",
|
||||
"version": "3.15.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem.git",
|
||||
"reference": "e2a279d7f47d9098e479e8b21f7fb8b8de230158"
|
||||
"reference": "a141d430414fcb8bf797a18716b09f759a385bed"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e2a279d7f47d9098e479e8b21f7fb8b8de230158",
|
||||
"reference": "e2a279d7f47d9098e479e8b21f7fb8b8de230158",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed",
|
||||
"reference": "a141d430414fcb8bf797a18716b09f759a385bed",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"league/flysystem-local": "^3.0.0",
|
||||
"league/mime-type-detection": "^1.0.0",
|
||||
"php": "^8.0.2"
|
||||
},
|
||||
@@ -2602,7 +2596,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/3.14.0"
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/3.15.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2614,20 +2608,20 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-11T18:11:47+00:00"
|
||||
"time": "2023-05-04T09:04:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem-aws-s3-v3",
|
||||
"version": "3.13.0",
|
||||
"version": "3.15.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
|
||||
"reference": "8e04cbb403d4dfd5b73a2f8685f1df395bd177eb"
|
||||
"reference": "d8de61ee10b6a607e7996cff388c5a3a663e8c8a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/8e04cbb403d4dfd5b73a2f8685f1df395bd177eb",
|
||||
"reference": "8e04cbb403d4dfd5b73a2f8685f1df395bd177eb",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/d8de61ee10b6a607e7996cff388c5a3a663e8c8a",
|
||||
"reference": "d8de61ee10b6a607e7996cff388c5a3a663e8c8a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2668,7 +2662,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.13.0"
|
||||
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.15.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2680,7 +2674,67 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-16T14:29:01+00:00"
|
||||
"time": "2023-05-02T20:02:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem-local",
|
||||
"version": "3.15.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem-local.git",
|
||||
"reference": "543f64c397fefdf9cfeac443ffb6beff602796b3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3",
|
||||
"reference": "543f64c397fefdf9cfeac443ffb6beff602796b3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-fileinfo": "*",
|
||||
"league/flysystem": "^3.0.0",
|
||||
"league/mime-type-detection": "^1.0.0",
|
||||
"php": "^8.0.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Flysystem\\Local\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Frank de Jonge",
|
||||
"email": "info@frankdejonge.nl"
|
||||
}
|
||||
],
|
||||
"description": "Local filesystem adapter for Flysystem.",
|
||||
"keywords": [
|
||||
"Flysystem",
|
||||
"file",
|
||||
"files",
|
||||
"filesystem",
|
||||
"local"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem-local/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://ecologi.com/frankdejonge",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/frankdejonge",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-05-02T20:02:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/html-to-markdown",
|
||||
@@ -3456,16 +3510,16 @@
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.15.4",
|
||||
"version": "v4.15.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290"
|
||||
"reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
|
||||
"reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e",
|
||||
"reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3506,9 +3560,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4"
|
||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5"
|
||||
},
|
||||
"time": "2023-03-05T19:49:14+00:00"
|
||||
"time": "2023-05-19T20:20:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nunomaduro/termwind",
|
||||
@@ -4569,16 +4623,16 @@
|
||||
},
|
||||
{
|
||||
"name": "psy/psysh",
|
||||
"version": "v0.11.16",
|
||||
"version": "v0.11.17",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bobthecow/psysh.git",
|
||||
"reference": "151b145906804eea8e5d71fea23bfb470c904bfb"
|
||||
"reference": "3dc5d4018dabd80bceb8fe1e3191ba8460569f0a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/151b145906804eea8e5d71fea23bfb470c904bfb",
|
||||
"reference": "151b145906804eea8e5d71fea23bfb470c904bfb",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/3dc5d4018dabd80bceb8fe1e3191ba8460569f0a",
|
||||
"reference": "3dc5d4018dabd80bceb8fe1e3191ba8460569f0a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4639,9 +4693,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/bobthecow/psysh/issues",
|
||||
"source": "https://github.com/bobthecow/psysh/tree/v0.11.16"
|
||||
"source": "https://github.com/bobthecow/psysh/tree/v0.11.17"
|
||||
},
|
||||
"time": "2023-04-26T12:53:57+00:00"
|
||||
"time": "2023-05-05T20:02:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ralouphie/getallheaders",
|
||||
@@ -7957,16 +8011,16 @@
|
||||
},
|
||||
{
|
||||
"name": "fakerphp/faker",
|
||||
"version": "v1.21.0",
|
||||
"version": "v1.22.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/FakerPHP/Faker.git",
|
||||
"reference": "92efad6a967f0b79c499705c69b662f738cc9e4d"
|
||||
"reference": "f85772abd508bd04e20bb4b1bbe260a68d0066d2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d",
|
||||
"reference": "92efad6a967f0b79c499705c69b662f738cc9e4d",
|
||||
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/f85772abd508bd04e20bb4b1bbe260a68d0066d2",
|
||||
"reference": "f85772abd508bd04e20bb4b1bbe260a68d0066d2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -8019,9 +8073,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/FakerPHP/Faker/issues",
|
||||
"source": "https://github.com/FakerPHP/Faker/tree/v1.21.0"
|
||||
"source": "https://github.com/FakerPHP/Faker/tree/v1.22.0"
|
||||
},
|
||||
"time": "2022-12-13T13:54:32+00:00"
|
||||
"time": "2023-05-14T12:31:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
@@ -8728,16 +8782,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "1.10.14",
|
||||
"version": "1.10.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan.git",
|
||||
"reference": "d232901b09e67538e5c86a724be841bea5768a7c"
|
||||
"reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/d232901b09e67538e5c86a724be841bea5768a7c",
|
||||
"reference": "d232901b09e67538e5c86a724be841bea5768a7c",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/762c4dac4da6f8756eebb80e528c3a47855da9bd",
|
||||
"reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -8786,7 +8840,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-19T13:47:27+00:00"
|
||||
"time": "2023-05-09T15:28:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
@@ -9108,16 +9162,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "9.6.7",
|
||||
"version": "9.6.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2"
|
||||
"reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
|
||||
"reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/17d621b3aff84d0c8b62539e269e87d8d5baa76e",
|
||||
"reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -9191,7 +9245,7 @@
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.7"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -9207,7 +9261,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-14T08:58:40+00:00"
|
||||
"time": "2023-05-11T05:14:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
@@ -9509,16 +9563,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/diff",
|
||||
"version": "4.0.4",
|
||||
"version": "4.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/diff.git",
|
||||
"reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
|
||||
"reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
|
||||
"reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
|
||||
"reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -9563,7 +9617,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/diff/issues",
|
||||
"source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
|
||||
"source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -9571,7 +9625,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2020-10-26T13:10:38+00:00"
|
||||
"time": "2023-05-07T05:35:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/environment",
|
||||
|
||||
@@ -7,27 +7,27 @@ return [
|
||||
|
||||
// Pages
|
||||
'page_create' => 'ha creat la pàgina',
|
||||
'page_create_notification' => 'Page successfully created',
|
||||
'page_create_notification' => 'Pàgina creada correctament',
|
||||
'page_update' => 'ha actualitzat la pàgina',
|
||||
'page_update_notification' => 'Page successfully updated',
|
||||
'page_update_notification' => 'Pàgina actualitzada correctament',
|
||||
'page_delete' => 'ha suprimit una pàgina',
|
||||
'page_delete_notification' => 'Page successfully deleted',
|
||||
'page_delete_notification' => 'Imatge esborrada correctament',
|
||||
'page_restore' => 'ha restaurat la pàgina',
|
||||
'page_restore_notification' => 'Page successfully restored',
|
||||
'page_restore_notification' => 'Pàgina restaurada correctament',
|
||||
'page_move' => 'ha mogut la pàgina',
|
||||
|
||||
// Chapters
|
||||
'chapter_create' => 'ha creat el capítol',
|
||||
'chapter_create_notification' => 'Chapter successfully created',
|
||||
'chapter_create_notification' => 'Capítol creat correctament',
|
||||
'chapter_update' => 'ha actualitzat el capítol',
|
||||
'chapter_update_notification' => 'Chapter successfully updated',
|
||||
'chapter_update_notification' => 'Capítol actualitzat correctament',
|
||||
'chapter_delete' => 'ha suprimit un capítol',
|
||||
'chapter_delete_notification' => 'Chapter successfully deleted',
|
||||
'chapter_delete_notification' => 'Capítol esborrat correctament',
|
||||
'chapter_move' => 'ha mogut el capítol',
|
||||
|
||||
// Books
|
||||
'book_create' => 'ha creat el llibre',
|
||||
'book_create_notification' => 'Book successfully created',
|
||||
'book_create_notification' => 'Llibre creat correctament',
|
||||
'book_create_from_chapter' => 'converted chapter to book',
|
||||
'book_create_from_chapter_notification' => 'Chapter successfully converted to a book',
|
||||
'book_update' => 'ha actualitzat el llibre',
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Bild auswählen',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Bild hochladen',
|
||||
'image_intro' => 'Hier können Sie die zuvor hochgeladenen Bilder auswählen und verwalten.',
|
||||
'image_intro_upload' => 'Laden Sie ein neues Bild hoch, indem Sie eine Bilddatei in dieses Fenster ziehen oder über die Schaltfläche "Bild hochladen" oben klicken.',
|
||||
'image_all' => 'Alle',
|
||||
'image_all_title' => 'Alle Bilder anzeigen',
|
||||
'image_book_title' => 'Zeige alle Bilder, die in dieses Buch hochgeladen wurden',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Möchten Sie dieses Bild wirklich löschen?',
|
||||
'image_select_image' => 'Bild auswählen',
|
||||
'image_dropzone' => 'Ziehen Sie Bilder hierher oder klicken Sie hier, um ein Bild auszuwählen',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Ziehe Dateien hierher, um sie hochzuladen',
|
||||
'images_deleted' => 'Bilder gelöscht',
|
||||
'image_preview' => 'Bildvorschau',
|
||||
'image_upload_success' => 'Bild erfolgreich hochgeladen',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => 'Änderungen werden direkt gespeichert.',
|
||||
'attachments_upload' => 'Datei hochladen',
|
||||
'attachments_link' => 'Link hinzufügen',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'Alternativ können Sie eine Datei per Drag & Drop hier hochladen, um sie als Anhang hochzuladen.',
|
||||
'attachments_set_link' => 'Link setzen',
|
||||
'attachments_delete' => 'Sind Sie sicher, dass Sie diesen Anhang löschen möchten?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'Ziehe Dateien hierher, um sie hochzuladen',
|
||||
'attachments_no_files' => 'Es wurden bisher keine Dateien hochgeladen.',
|
||||
'attachments_explain_link' => 'Wenn Sie keine Datei hochladen möchten, können Sie stattdessen einen Link hinzufügen. Dieser Link kann auf eine andere Seite oder eine Datei im Internet weisen.',
|
||||
'attachments_link_name' => 'Link-Name',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Anhang konnte nicht gefunden werden.',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => 'Beim Hochladen des Anhangs trat ein Fehler auf',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Fehler beim Speichern des Entwurfs. Stellen Sie sicher, dass Sie mit dem Internet verbunden sind, bevor Sie den Entwurf dieser Seite speichern.',
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Bild auswählen',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Bild hochladen',
|
||||
'image_intro' => 'Hier können Sie die zuvor hochgeladenen Bilder auswählen und verwalten.',
|
||||
'image_intro_upload' => 'Laden Sie ein neues Bild hoch, indem Sie eine Bilddatei in dieses Fenster ziehen oder über die Schaltfläche "Bild hochladen" oben klicken.',
|
||||
'image_all' => 'Alle',
|
||||
'image_all_title' => 'Alle Bilder anzeigen',
|
||||
'image_book_title' => 'Zeige alle Bilder, die in dieses Buch hochgeladen wurden',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Bist Du sicher, dass Du diese Seite löschen möchtest?',
|
||||
'image_select_image' => 'Bild auswählen',
|
||||
'image_dropzone' => 'Ziehe Bilder hierher oder klicke hier, um ein Bild auszuwählen',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Ziehe Dateien hierher, um sie hochzuladen',
|
||||
'images_deleted' => 'Bilder gelöscht',
|
||||
'image_preview' => 'Bildvorschau',
|
||||
'image_upload_success' => 'Bild erfolgreich hochgeladen',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => 'Änderungen werden direkt gespeichert.',
|
||||
'attachments_upload' => 'Datei hochladen',
|
||||
'attachments_link' => 'Link hinzufügen',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'Alternativ können Sie eine Datei per Drag & Drop hier hochladen, um sie als Anhang hochzuladen.',
|
||||
'attachments_set_link' => 'Link setzen',
|
||||
'attachments_delete' => 'Bist du sicher, dass du diesen Anhang löschen möchtest?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'Ziehe Dateien hierher, um sie hochzuladen',
|
||||
'attachments_no_files' => 'Es wurden bisher keine Dateien hochgeladen.',
|
||||
'attachments_explain_link' => 'Wenn du keine Datei hochladen möchtest, kannst du stattdessen einen Link hinzufügen. Dieser Link kann auf eine andere Seite oder eine Datei im Internet verweisen.',
|
||||
'attachments_link_name' => 'Link-Name',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Anhang konnte nicht gefunden werden.',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => 'Beim Hochladen des Anhangs trat ein Fehler auf',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Fehler beim Speichern des Entwurfs. Stelle sicher, dass du mit dem Internet verbunden bist, bevor du den Entwurf dieser Seite speicherst.',
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Sélectionner une image',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Téléverser une image',
|
||||
'image_intro' => 'Ici, vous pouvez sélectionner et gérer les images qui ont été précédemment téléversées sur le système.',
|
||||
'image_intro_upload' => 'Téléversez une nouvelle image en glissant un fichier image dans cette fenêtre, ou en utilisant le bouton "Téléverser une image" ci-dessus.',
|
||||
'image_all' => 'Toutes',
|
||||
'image_all_title' => 'Voir toutes les images',
|
||||
'image_book_title' => 'Voir les images ajoutées à ce livre',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Êtes-vous sûr de vouloir supprimer cette image ?',
|
||||
'image_select_image' => 'Sélectionner l\'image',
|
||||
'image_dropzone' => 'Glissez les images ici ou cliquez pour les ajouter',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Déposer des images ici pour les téléverser',
|
||||
'images_deleted' => 'Images supprimées',
|
||||
'image_preview' => 'Prévisualiser l\'image',
|
||||
'image_upload_success' => 'Image ajoutée avec succès',
|
||||
|
||||
@@ -309,16 +309,16 @@ return [
|
||||
'tags_view_existing_tags' => 'Voir les mots-clés existants',
|
||||
'tags_list_empty_hint' => 'Les mots-clés peuvent être assignés via la barre latérale de l\'éditeur de page ou lors de l\'édition des détails d\'un livre, d\'un chapitre ou d\'une étagère.',
|
||||
'attachments' => 'Fichiers joints',
|
||||
'attachments_explain' => 'Ajouter des fichiers ou des liens pour les afficher sur votre page. Ils seront affichés dans la barre latérale',
|
||||
'attachments_explain' => 'Ajouter des fichiers ou des liens pour les afficher sur votre page. Ils seront affichés dans la barre latérale.',
|
||||
'attachments_explain_instant_save' => 'Ces changements sont enregistrés immédiatement.',
|
||||
'attachments_upload' => 'Uploader un fichier',
|
||||
'attachments_upload' => 'Téléverser un fichier',
|
||||
'attachments_link' => 'Attacher un lien',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'Vous pouvez également glisser-déposer un fichier ici pour le téléverser en tant que pièce jointe.',
|
||||
'attachments_set_link' => 'Définir un lien',
|
||||
'attachments_delete' => 'Êtes-vous sûr de vouloir supprimer la pièce jointe ?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'Déposer des fichiers ici pour les téléverser',
|
||||
'attachments_no_files' => 'Aucun fichier ajouté',
|
||||
'attachments_explain_link' => 'Vous pouvez ajouter un lien si vous ne souhaitez pas uploader un fichier.',
|
||||
'attachments_explain_link' => 'Vous pouvez ajouter un lien si vous ne souhaitez pas téléverser un fichier.',
|
||||
'attachments_link_name' => 'Nom du lien',
|
||||
'attachment_link' => 'Lien de l\'attachement',
|
||||
'attachments_link_url' => 'Lien sur un fichier',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Fichier joint non trouvé',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => 'Une erreur s\'est produite avec le téléversement du fichier joint',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Le brouillon n\'a pas pu être enregistré. Vérifiez votre connexion internet',
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Selezione Immagine',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Carica Immagine',
|
||||
'image_intro' => 'Qui è possibile selezionare e gestire le immagini che sono state precedentemente caricate nel sistema.',
|
||||
'image_intro_upload' => 'Carica una nuova immagine trascinando un file immagine in questa finestra oppure utilizzando il pulsante "Carica immagine" in alto.',
|
||||
'image_all' => 'Tutte',
|
||||
'image_all_title' => 'Visualizza tutte le immagini',
|
||||
'image_book_title' => 'Visualizza immagini caricate in questo libro',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Sei sicuro di voler eliminare questa immagine?',
|
||||
'image_select_image' => 'Seleziona Immagine',
|
||||
'image_dropzone' => 'Rilascia immagini o clicca qui per caricarle',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Trascina qui le immagini da caricare',
|
||||
'images_deleted' => 'Immagini Eliminate',
|
||||
'image_preview' => 'Anteprima Immagine',
|
||||
'image_upload_success' => 'Immagine caricata correttamente',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => 'I cambiamenti qui sono salvati istantaneamente.',
|
||||
'attachments_upload' => 'Carica File',
|
||||
'attachments_link' => 'Allega Link',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'In alternativa puoi trascinare un file qui per caricarlo come allegato.',
|
||||
'attachments_set_link' => 'Imposta Link',
|
||||
'attachments_delete' => 'Sei sicuro di voler eliminare questo allegato?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'Trascina qui i file da caricare',
|
||||
'attachments_no_files' => 'Nessun file è stato caricato',
|
||||
'attachments_explain_link' => 'Puoi allegare un link se preferisci non caricare un file. Questo può essere un link a un\'altra pagina o a un file nel cloud.',
|
||||
'attachments_link_name' => 'Nome Link',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Allegato non trovato',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => 'Si è verificato un errore durante il caricamento del file allegato',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Impossibile salvare la bozza. Controlla di essere connesso ad internet prima di salvare questa pagina',
|
||||
|
||||
@@ -68,7 +68,7 @@ return [
|
||||
'back_to_top' => '上に戻る',
|
||||
'skip_to_main_content' => 'メインコンテンツへスキップ',
|
||||
'toggle_details' => '概要の表示切替',
|
||||
'toggle_thumbnails' => 'Toggle Thumbnails',
|
||||
'toggle_thumbnails' => 'サムネイルの切り替え',
|
||||
'details' => '詳細',
|
||||
'grid_view' => 'グリッド形式',
|
||||
'list_view' => 'リスト形式',
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => '画像を選択',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => '画像をアップロード',
|
||||
'image_intro' => 'ここでは、システムに以前アップロードされた画像を選択して管理できます。',
|
||||
'image_intro_upload' => 'このウィンドウに画像ファイルをドラッグするか、上の「画像をアップロード」ボタンを使用して新しい画像をアップロードします。',
|
||||
'image_all' => 'すべて',
|
||||
'image_all_title' => '全ての画像を表示',
|
||||
'image_book_title' => 'このブックにアップロードされた画像を表示',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'この画像を削除してもよろしいですか?',
|
||||
'image_select_image' => '画像を選択',
|
||||
'image_dropzone' => '画像をドロップするか、クリックしてアップロード',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'アップロードする画像をここにドロップ',
|
||||
'images_deleted' => '画像を削除しました',
|
||||
'image_preview' => '画像プレビュー',
|
||||
'image_upload_success' => '画像がアップロードされました',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => 'この変更は即座に保存されます。',
|
||||
'attachments_upload' => 'アップロード',
|
||||
'attachments_link' => 'リンクを添付',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'ファイルをここにドラッグアンドドロップして添付ファイルとしてアップロードすることもできます。',
|
||||
'attachments_set_link' => 'リンクを設定',
|
||||
'attachments_delete' => 'この添付ファイルを削除してよろしいですか?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'アップロードするファイルをここにドロップ',
|
||||
'attachments_no_files' => 'ファイルはアップロードされていません',
|
||||
'attachments_explain_link' => 'ファイルをアップロードしたくない場合、他のページやクラウド上のファイルへのリンクを添付できます。',
|
||||
'attachments_link_name' => 'リンク名',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => '添付ファイルが見つかりません',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => '添付ファイルのアップロード中にエラーが発生しました',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => '下書きの保存に失敗しました。インターネットへ接続してください。',
|
||||
|
||||
@@ -12,9 +12,9 @@ return [
|
||||
'page_update_notification' => 'Pagina succesvol bijgewerkt',
|
||||
'page_delete' => 'verwijderde pagina',
|
||||
'page_delete_notification' => 'Pagina succesvol verwijderd',
|
||||
'page_restore' => 'pagina hersteld',
|
||||
'page_restore' => 'herstelde pagina',
|
||||
'page_restore_notification' => 'Pagina succesvol hersteld',
|
||||
'page_move' => 'pagina verplaatst',
|
||||
'page_move' => 'verplaatste pagina',
|
||||
|
||||
// Chapters
|
||||
'chapter_create' => 'maakte hoofdstuk',
|
||||
@@ -23,18 +23,18 @@ return [
|
||||
'chapter_update_notification' => 'Hoofdstuk succesvol bijgewerkt',
|
||||
'chapter_delete' => 'verwijderde hoofdstuk',
|
||||
'chapter_delete_notification' => 'Hoofdstuk succesvol verwijderd',
|
||||
'chapter_move' => 'hoofdstuk verplaatst',
|
||||
'chapter_move' => 'verplaatste hoofdstuk',
|
||||
|
||||
// Books
|
||||
'book_create' => 'maakte boek',
|
||||
'book_create_notification' => 'Boek succesvol aangemaakt',
|
||||
'book_create_from_chapter' => 'hoofdstuk omzetten naar boek',
|
||||
'book_create_from_chapter_notification' => 'Hoofdstuk is omgezet naar een boek',
|
||||
'book_create_from_chapter' => 'heeft hoofdstuk geconverteerd naar boek',
|
||||
'book_create_from_chapter_notification' => 'Hoofdstuk is succesvol geconverteerd naar boekenplank',
|
||||
'book_update' => 'wijzigde boek',
|
||||
'book_update_notification' => 'Boek succesvol bijgewerkt',
|
||||
'book_delete' => 'verwijderde boek',
|
||||
'book_delete_notification' => 'Boek succesvol verwijderd',
|
||||
'book_sort' => 'boek gesorteerd',
|
||||
'book_sort' => 'sorteerde boek',
|
||||
'book_sort_notification' => 'Boek succesvol opnieuw gesorteerd',
|
||||
|
||||
// Bookshelves
|
||||
|
||||
@@ -20,22 +20,22 @@ return [
|
||||
'username' => 'Gebruikersnaam',
|
||||
'email' => 'E-mail',
|
||||
'password' => 'Wachtwoord',
|
||||
'password_confirm' => 'Wachtwoord bevestigen',
|
||||
'password_confirm' => 'Wachtwoord Bevestigen',
|
||||
'password_hint' => 'Moet uit minstens 8 tekens bestaan',
|
||||
'forgot_password' => 'Wachtwoord vergeten?',
|
||||
'remember_me' => 'Mij onthouden',
|
||||
'ldap_email_hint' => 'Geef een emailadres op voor dit account.',
|
||||
'ldap_email_hint' => 'Geef een e-mailadres op voor dit account.',
|
||||
'create_account' => 'Account aanmaken',
|
||||
'already_have_account' => 'Heb je al een account?',
|
||||
'dont_have_account' => 'Nog geen account?',
|
||||
'social_login' => 'Aanmelden via een sociaal netwerk',
|
||||
'social_registration' => 'Social registratie',
|
||||
'social_registration' => 'Registratie via een sociaal netwerk',
|
||||
'social_registration_text' => 'Registreer en log in met een andere service.',
|
||||
|
||||
'register_thanks' => 'Bedankt voor het registreren!',
|
||||
'register_confirm' => 'Controleer je e-mail en bevestig je registratie om in te loggen op :appName.',
|
||||
'register_confirm' => 'Controleer je e-mail en klik op de bevestigingsknop om toegang te krijgen tot :appName.',
|
||||
'registrations_disabled' => 'Registratie is momenteel niet mogelijk',
|
||||
'registration_email_domain_invalid' => 'Dit e-maildomein is niet toegestaan',
|
||||
'registration_email_domain_invalid' => 'Dit e-maildomein wordt niet toegelaten tot deze applicatie',
|
||||
'register_success' => 'Bedankt voor het aanmelden! Je bent nu geregistreerd en aangemeld.',
|
||||
|
||||
// Login auto-initiation
|
||||
@@ -45,22 +45,22 @@ return [
|
||||
|
||||
// Password Reset
|
||||
'reset_password' => 'Wachtwoord herstellen',
|
||||
'reset_password_send_instructions' => 'Geef je e-mail en we sturen je een link om je wachtwoord te herstellen',
|
||||
'reset_password_send_instructions' => 'Geef je e-mailadres op en er wordt een link gestuurd om je wachtwoord te herstellen.',
|
||||
'reset_password_send_button' => 'Link sturen',
|
||||
'reset_password_sent' => 'Een link om het wachtwoord te resetten zal verstuurd worden naar :email als dat e-mailadres in het systeem gevonden is.',
|
||||
'reset_password_success' => 'Je wachtwoord is succesvol hersteld.',
|
||||
'email_reset_subject' => 'Herstel je wachtwoord van :appName',
|
||||
'email_reset_text' => 'Je ontvangt deze e-mail omdat je een wachtwoord herstel verzoek had verzonden.',
|
||||
'email_reset_text' => 'Je ontvangt deze e-mail omdat we een wachtwoordresetverzoek voor uw account hebben ontvangen.',
|
||||
'email_reset_not_requested' => 'Als je geen wachtwoord herstel hebt aangevraagd, hoef je niets te doen.',
|
||||
|
||||
// Email Confirmation
|
||||
'email_confirm_subject' => 'Bevestig je e-mailadres op :appName',
|
||||
'email_confirm_greeting' => 'Bedankt voor je aanmelding op :appName!',
|
||||
'email_confirm_text' => 'Bevestig je registratie door op onderstaande knop te drukken:',
|
||||
'email_confirm_text' => 'Bevestig je e-mailadres door op onderstaande knop te drukken:',
|
||||
'email_confirm_action' => 'Bevestig je e-mail',
|
||||
'email_confirm_send_error' => 'E-mail bevestiging is vereisd maar het systeem kon geen mail verzenden. Neem contact op met de beheerder.',
|
||||
'email_confirm_send_error' => 'Een e-mailbevestiging is vereist, maar het systeem kon de e-mail niet verzenden. Neem contact op met de beheerder.',
|
||||
'email_confirm_success' => 'Uw e-mailadres is bevestigd! U zou nu moeten kunnen inloggen met dit e-mailadres.',
|
||||
'email_confirm_resent' => 'De bevestigingse-mails is opnieuw verzonden. Controleer je inbox.',
|
||||
'email_confirm_resent' => 'Bevestigingsmail opnieuw verzonden, controleer je inbox.',
|
||||
'email_confirm_thanks' => 'Bedankt voor de bevestiging!',
|
||||
'email_confirm_thanks_desc' => 'Wacht even terwijl uw bevestiging wordt behandeld. Als u na 3 seconden niet wordt doorverwezen, drukt u op de onderstaande link "Doorgaan" om verder te gaan.',
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Selecteer Afbeelding',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Upload afbeelding',
|
||||
'image_intro' => 'Hier kan je eerder geüploade afbeeldingen selecteren en beheren.',
|
||||
'image_intro_upload' => 'Sleep een afbeeldingsbestand naar dit venster of gebruik de "Upload afbeelding"-knop om een afbeelding te uploaden.',
|
||||
'image_all' => 'Alles',
|
||||
'image_all_title' => 'Alle afbeeldingen weergeven',
|
||||
'image_book_title' => 'Bekijk afbeeldingen die naar dit boek zijn geüpload',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Weet u zeker dat u deze afbeelding wilt verwijderen?',
|
||||
'image_select_image' => 'Kies afbeelding',
|
||||
'image_dropzone' => 'Sleep afbeeldingen naar hier of klik hier om te uploaden',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Sleep hier de afbeeldingen naar toe',
|
||||
'images_deleted' => 'Afbeeldingen verwijderd',
|
||||
'image_preview' => 'Afbeelding voorbeeld',
|
||||
'image_upload_success' => 'Afbeelding succesvol geüpload',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => 'Wijzigingen worden meteen opgeslagen.',
|
||||
'attachments_upload' => 'Bestand uploaden',
|
||||
'attachments_link' => 'Link toevoegen',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'Of je kan een bestand hiernaartoe slepen om het als bijlage te uploaden.',
|
||||
'attachments_set_link' => 'Zet link',
|
||||
'attachments_delete' => 'Weet u zeker dat u deze bijlage wilt verwijderen?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'Sleep hier de bestanden naar toe',
|
||||
'attachments_no_files' => 'Er zijn geen bestanden geüpload',
|
||||
'attachments_explain_link' => 'Je kunt een hyperlink toevoegen als je geen bestanden wilt uploaden. Dit kan een link naar een andere pagina op deze website zijn, maar ook een link naar een andere website.',
|
||||
'attachments_link_name' => 'Link naam',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Bijlage niet gevonden',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => 'Er is een fout opgetreden bij het uploaden van het bestand',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Kon het concept niet opslaan. Zorg ervoor dat je een werkende internetverbinding hebt',
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Wybór obrazka',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Prześlij obraz',
|
||||
'image_intro' => 'Tutaj możesz wybrać i zarządzać obrazami, które zostały wcześniej przesłane do systemu.',
|
||||
'image_intro_upload' => 'Prześlij nowy obraz przeciągając plik obrazu do tego okna lub używając przycisku "Prześlij obraz" powyżej.',
|
||||
'image_all' => 'Wszystkie',
|
||||
'image_all_title' => 'Zobacz wszystkie obrazki',
|
||||
'image_book_title' => 'Zobacz obrazki zapisane w tej książce',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Czy na pewno chcesz usunąć ten obraz?',
|
||||
'image_select_image' => 'Wybierz obrazek',
|
||||
'image_dropzone' => 'Upuść obrazki tutaj lub kliknij by wybrać obrazki do przesłania',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Upuść obrazy tutaj, aby przesłać',
|
||||
'images_deleted' => 'Usunięte obrazki',
|
||||
'image_preview' => 'Podgląd obrazka',
|
||||
'image_upload_success' => 'Obrazek przesłany pomyślnie',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => 'Zmiany są zapisywane natychmiastowo.',
|
||||
'attachments_upload' => 'Dodaj plik',
|
||||
'attachments_link' => 'Dodaj link',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'Alternatywnie możesz przeciągnąć i upuścić plik tutaj, aby przesłać go jako załącznik.',
|
||||
'attachments_set_link' => 'Ustaw link',
|
||||
'attachments_delete' => 'Jesteś pewien, że chcesz usunąć ten załącznik?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'Upuść pliki tutaj, aby przesłać',
|
||||
'attachments_no_files' => 'Nie przesłano żadnych plików',
|
||||
'attachments_explain_link' => 'Możesz załączyć link jeśli nie chcesz przesyłać pliku. Może być to link do innej strony lub link do pliku w chmurze.',
|
||||
'attachments_link_name' => 'Nazwa linku',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Nie znaleziono załącznika',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => 'Wystąpił błąd podczas przesyłania pliku załącznika',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Zapis wersji roboczej nie powiódł się. Upewnij się, że posiadasz połączenie z internetem.',
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Selecionar Imagem',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Fazer upload de imagem',
|
||||
'image_intro' => 'Aqui você pode selecionar e gerenciar imagens que foram previamente enviadas para o sistema.',
|
||||
'image_intro_upload' => 'Faça upload de uma imagem arrastando um arquivo de imagem para esta janela, ou usando o botão "Fazer upload de imagem" acima.',
|
||||
'image_all' => 'Todas',
|
||||
'image_all_title' => 'Visualizar todas as imagens',
|
||||
'image_book_title' => 'Visualizar imagens relacionadas a esse livro',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Tem certeza de que deseja excluir essa imagem?',
|
||||
'image_select_image' => 'Selecionar Imagem',
|
||||
'image_dropzone' => 'Arraste imagens ou clique aqui para fazer upload',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Arrastar imagens até aqui para fazer upload',
|
||||
'images_deleted' => 'Imagens Excluídas',
|
||||
'image_preview' => 'Pré-Visualização de Imagem',
|
||||
'image_upload_success' => 'Upload de imagem efetuado com sucesso',
|
||||
|
||||
@@ -23,7 +23,7 @@ return [
|
||||
'meta_updated' => 'Atualizado :timeLength',
|
||||
'meta_updated_name' => 'Atualizado :timeLength por :user',
|
||||
'meta_owned_name' => 'De :user',
|
||||
'meta_reference_page_count' => 'Referenced on :count page|Referenced on :count pages',
|
||||
'meta_reference_page_count' => 'Referenciado em :count página|Referenciado em :count páginas',
|
||||
'entity_select' => 'Seleção de Entidade',
|
||||
'entity_select_lack_permission' => 'Você não tem as permissões necessárias para selecionar este item',
|
||||
'images' => 'Imagens',
|
||||
@@ -141,7 +141,7 @@ return [
|
||||
'books_search_this' => 'Pesquisar neste livro',
|
||||
'books_navigation' => 'Navegação do Livro',
|
||||
'books_sort' => 'Ordenar Conteúdos do Livro',
|
||||
'books_sort_desc' => 'Move chapters and pages within a book to reorganise its contents. Other books can be added which allows easy moving of chapters and pages between books.',
|
||||
'books_sort_desc' => 'Mova capítulos e páginas de um livro para reorganizar seu conteúdo. É possível acrescentar outros livros, o que permite uma movimentação fácil de capítulos e páginas entre livros.',
|
||||
'books_sort_named' => 'Ordenar Livro :bookName',
|
||||
'books_sort_name' => 'Ordernar por Nome',
|
||||
'books_sort_created' => 'Ordenar por Data de Criação',
|
||||
@@ -150,17 +150,17 @@ return [
|
||||
'books_sort_chapters_last' => 'Capítulos por Último',
|
||||
'books_sort_show_other' => 'Mostrar Outros Livros',
|
||||
'books_sort_save' => 'Salvar Nova Ordenação',
|
||||
'books_sort_show_other_desc' => 'Add other books here to include them in the sort operation, and allow easy cross-book reorganisation.',
|
||||
'books_sort_move_up' => 'Move Up',
|
||||
'books_sort_move_down' => 'Move Down',
|
||||
'books_sort_move_prev_book' => 'Move to Previous Book',
|
||||
'books_sort_move_next_book' => 'Move to Next Book',
|
||||
'books_sort_move_prev_chapter' => 'Move Into Previous Chapter',
|
||||
'books_sort_move_next_chapter' => 'Move Into Next Chapter',
|
||||
'books_sort_move_book_start' => 'Move to Start of Book',
|
||||
'books_sort_move_book_end' => 'Move to End of Book',
|
||||
'books_sort_move_before_chapter' => 'Move to Before Chapter',
|
||||
'books_sort_move_after_chapter' => 'Move to After Chapter',
|
||||
'books_sort_show_other_desc' => 'Adicione outros livros aqui para incluí-los na operação de ordenação e permitir a reorganização fácil de todos os livros.',
|
||||
'books_sort_move_up' => 'Mover para cima',
|
||||
'books_sort_move_down' => 'Mover para baixo',
|
||||
'books_sort_move_prev_book' => 'Mover para Livro Anterior',
|
||||
'books_sort_move_next_book' => 'Mover para o Próximo Livro',
|
||||
'books_sort_move_prev_chapter' => 'Mover para o Capítulo Anterior',
|
||||
'books_sort_move_next_chapter' => 'Mover para o Próximo Capítulo',
|
||||
'books_sort_move_book_start' => 'Mover para o Início do Livro',
|
||||
'books_sort_move_book_end' => 'Mover para o Final do Livro',
|
||||
'books_sort_move_before_chapter' => 'Mover para Antes do Capítulo',
|
||||
'books_sort_move_after_chapter' => 'Mover para Depois do Capítulo',
|
||||
'books_copy' => 'Copiar Livro',
|
||||
'books_copy_success' => 'Livro criado com sucesso',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => 'Mudanças são salvas instantaneamente.',
|
||||
'attachments_upload' => 'Upload de Arquivos',
|
||||
'attachments_link' => 'Links Anexados',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'Como alternativa, você pode arrastar e soltar um arquivo aqui para enviá-lo como um anexo.',
|
||||
'attachments_set_link' => 'Definir Link',
|
||||
'attachments_delete' => 'Tem certeza de que deseja excluir esse anexo?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'Arraste os arquivos até aqui para fazer o upload',
|
||||
'attachments_no_files' => 'Nenhum arquivo foi enviado',
|
||||
'attachments_explain_link' => 'Você pode anexar um link se preferir não fazer o upload do arquivo. O link poderá ser para uma outra página ou para um arquivo na nuvem.',
|
||||
'attachments_link_name' => 'Nome do Link',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Anexo não encontrado',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => 'Um erro ocorreu ao efetuar o upload do arquivo anexado',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Falha ao tentar salvar o rascunho. Certifique-se que a conexão de internet está funcional antes de tentar salvar essa página',
|
||||
|
||||
@@ -33,9 +33,9 @@ return [
|
||||
'app_custom_html_desc' => 'Quaisquer conteúdos aqui adicionados serão inseridos no final da seção <head> de cada página. Essa é uma maneira útil de sobrescrever estilos e adicionar códigos de análise de site.',
|
||||
'app_custom_html_disabled_notice' => 'O conteúdo customizado do <head> HTML está desabilitado nesta página de configurações, para garantir que quaisquer alterações danosas possam ser revertidas.',
|
||||
'app_logo' => 'Logo da Aplicação',
|
||||
'app_logo_desc' => 'This is used in the application header bar, among other areas. This image should be 86px in height. Large images will be scaled down.',
|
||||
'app_icon' => 'Application Icon',
|
||||
'app_icon_desc' => 'This icon is used for browser tabs and shortcut icons. This should be a 256px square PNG image.',
|
||||
'app_logo_desc' => 'Isto é usado na barra de cabeçalho do aplicativo, entre outras áreas. Esta imagem deve ter 86px de altura. Imagens grandes serão reduzidas.',
|
||||
'app_icon' => 'Ícone do Aplicativo',
|
||||
'app_icon_desc' => 'Este ícone é usado para guias e ícones de atalhos do navegador. Deve ser uma imagem PNG quadrada de 256px.',
|
||||
'app_homepage' => 'Página Inicial',
|
||||
'app_homepage_desc' => 'Selecione uma opção para ser exibida como página inicial em vez da padrão. Permissões de página serão ignoradas para as páginas selecionadas.',
|
||||
'app_homepage_select' => 'Selecione uma página',
|
||||
@@ -49,12 +49,12 @@ return [
|
||||
'app_disable_comments_desc' => 'Desativar comentários em todas as páginas no aplicativo.<br> Comentários existentes não serão exibidos.',
|
||||
|
||||
// Color settings
|
||||
'color_scheme' => 'Application Color Scheme',
|
||||
'color_scheme_desc' => 'Set the colors to use in the application user interface. Colors can be configured separately for dark and light modes to best fit the theme and ensure legibility.',
|
||||
'ui_colors_desc' => 'Set the application primary color and default link color. The primary color is mainly used for the header banner, buttons and interface decorations. The default link color is used for text-based links and actions, both within written content and in the application interface.',
|
||||
'app_color' => 'Primary Color',
|
||||
'link_color' => 'Default Link Color',
|
||||
'content_colors_desc' => 'Set colors for all elements in the page organisation hierarchy. Choosing colors with a similar brightness to the default colors is recommended for readability.',
|
||||
'color_scheme' => 'Esquema de Cores do Aplicativo',
|
||||
'color_scheme_desc' => 'Defina as cores a serem usadas na interface do usuário do aplicativo. As cores podem ser configuradas separadamente para modos escuro e claro para melhor se adequar ao tema e garantir legibilidade.',
|
||||
'ui_colors_desc' => 'Defina a cor primária do aplicativo e a cor padrão para links. A cor principal é usada principalmente para o banner do cabeçalho, botões e decorações da interface. A cor padrão para links é usada para links e ações baseados em texto, tanto dentro do conteúdo escrito quanto na interface do aplicativo.',
|
||||
'app_color' => 'Cor Primária',
|
||||
'link_color' => 'Cor Padrão para Links',
|
||||
'content_colors_desc' => 'Definir cores para todos os elementos na hierarquia da organização da página. Escolher cores com um brilho semelhante às cores padrão é recomendado para legibilidade.',
|
||||
'bookshelf_color' => 'Cor da Prateleira',
|
||||
'book_color' => 'Cor do Livro',
|
||||
'chapter_color' => 'Cor do Capítulo',
|
||||
@@ -138,8 +138,8 @@ return [
|
||||
'roles' => 'Cargos',
|
||||
'role_user_roles' => 'Cargos de Usuário',
|
||||
'roles_index_desc' => 'As funções são usadas para agrupar usuários & fornecer permissão de sistema a seus membros. Quando um usuário é membro de várias funções, os privilégios concedidos serão acumulados e o usuário herdará todas as habilidades.',
|
||||
'roles_x_users_assigned' => ':count user assigned|:count users assigned',
|
||||
'roles_x_permissions_provided' => ':count permission|:count permissions',
|
||||
'roles_x_users_assigned' => ':count usuário atribuído|:count usuários atribuídos',
|
||||
'roles_x_permissions_provided' => ':count permissão|:count permissões',
|
||||
'roles_assigned_users' => 'Usuários atribuídos',
|
||||
'roles_permissions_provided' => 'Permissões fornecidas',
|
||||
'role_create' => 'Criar novo Cargo',
|
||||
@@ -249,7 +249,7 @@ return [
|
||||
// Webhooks
|
||||
'webhooks' => 'Webhooks',
|
||||
'webhooks_index_desc' => 'Os webhooks são uma maneira de enviar dados para URLs externos quando certas ações e eventos ocorrem dentro do sistema, o que permite a integração baseada em eventos com plataformas externas, como sistemas de mensagens ou notificação.',
|
||||
'webhooks_x_trigger_events' => ':count trigger event|:count trigger events',
|
||||
'webhooks_x_trigger_events' => ':count evento de gatilho|:count eventos de gatilho',
|
||||
'webhooks_create' => 'Criar novo webhook',
|
||||
'webhooks_none_created' => 'Nenhum webhooks foi criado ainda.',
|
||||
'webhooks_edit' => 'Editar webhook',
|
||||
|
||||
@@ -6,9 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Vybrať obrázok',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Nahrať obrázok',
|
||||
'image_intro' => 'Tu môžete vybrať a spravovať obrázky, ktoré boli predtým nahrané do systému.',
|
||||
'image_intro_upload' => 'Nahrajte nový obrázok pretiahnutím súboru obrázka do tohto okna alebo pomocou vyššie uvedeného tlačidla „Nahrať obrázok“.',
|
||||
'image_all' => 'Všetko',
|
||||
'image_all_title' => 'Zobraziť všetky obrázky',
|
||||
'image_book_title' => 'Zobraziť obrázky nahrané do tejto knihy',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Naozaj chcete vymazať tento obrázok?',
|
||||
'image_select_image' => 'Vybrať obrázok',
|
||||
'image_dropzone' => 'Presuňte obrázky sem alebo kliknite sem pre nahranie',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Sem presuňte obrázky, ktoré chcete nahrať',
|
||||
'images_deleted' => 'Obrázky zmazané',
|
||||
'image_preview' => 'Náhľad obrázka',
|
||||
'image_upload_success' => 'Obrázok úspešne nahraný',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => 'Zmeny budú okamžite uložené.',
|
||||
'attachments_upload' => 'Nahrať súbor',
|
||||
'attachments_link' => 'Priložiť odkaz',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => 'Prípadne môžete presunúť súbor myšou sem a nahrať ho ako prílohu.',
|
||||
'attachments_set_link' => 'Nastaviť odkaz',
|
||||
'attachments_delete' => 'Naozaj chcete odstrániť túto prílohu?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => 'Sem presuňte súbory na nahratie',
|
||||
'attachments_no_files' => 'Žiadne súbory neboli nahrané',
|
||||
'attachments_explain_link' => 'Ak nechcete priložiť súbor, môžete priložiť odkaz. Môže to byť odkaz na inú stránku alebo odkaz na súbor v cloude.',
|
||||
'attachments_link_name' => 'Názov odkazu',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Príloha nenájdená',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => 'Pri nahrávaní súboru prílohy nastala chyba',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Koncept nemohol byť uložený. Uistite sa, že máte pripojenie k internetu pre uložením tejto stránky',
|
||||
|
||||
@@ -68,9 +68,9 @@ return [
|
||||
'user_delete_notification' => 'Người dùng đã được xóa thành công',
|
||||
|
||||
// Roles
|
||||
'role_create_notification' => 'Role successfully created',
|
||||
'role_update_notification' => 'Role successfully updated',
|
||||
'role_delete_notification' => 'Role successfully deleted',
|
||||
'role_create_notification' => 'Vai trò mới đã được tạo thành công',
|
||||
'role_update_notification' => 'Vai trò đã được cập nhật thành công',
|
||||
'role_delete_notification' => 'Vai trò đã được xóa thành công',
|
||||
|
||||
// Other
|
||||
'commented_on' => 'đã bình luận về',
|
||||
|
||||
@@ -17,7 +17,7 @@ return [
|
||||
// Form Labels
|
||||
'name' => 'Tên',
|
||||
'description' => 'Mô tả',
|
||||
'role' => 'Quyền',
|
||||
'role' => 'Vai trò',
|
||||
'cover_image' => 'Ảnh bìa',
|
||||
'cover_image_description' => 'Ảnh nên có kích thước 440x250px.',
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Chọn Ảnh',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_upload' => 'Tải ảnh lên',
|
||||
'image_intro' => 'Bạn có thể lựa chọn và quản lý các hình ảnh đã được tải lên hệ thống từ trước ở đây.',
|
||||
'image_intro_upload' => 'Tải lên ảnh mới bằng cách kéo và thả nó vào cửa sổ này, hoặc sử dụng nút tải ảnh ở bên trên.',
|
||||
'image_all' => 'Tất cả',
|
||||
'image_all_title' => 'Xem tất cả các ảnh',
|
||||
'image_book_title' => 'Xem các ảnh đã được tải lên sách này',
|
||||
'image_page_title' => 'Xem các ảnh đã được tải lên trang này',
|
||||
'image_book_title' => 'Xem các ảnh đã được tải lên trong sách này',
|
||||
'image_page_title' => 'Xem các ảnh đã được tải lên trong trang này',
|
||||
'image_search_hint' => 'Tìm kiếm ảnh bằng tên',
|
||||
'image_uploaded' => 'Đã tải lên :uploadedDate',
|
||||
'image_load_more' => 'Hiện thêm',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'image_delete_confirm_text' => 'Bạn có chắc chắn muốn xóa hình ảnh này?',
|
||||
'image_select_image' => 'Chọn Ảnh',
|
||||
'image_dropzone' => 'Thả các ảnh hoặc bấm vào đây để tải lên',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'image_dropzone_drop' => 'Kéo các tệp vào đây để tải lên',
|
||||
'images_deleted' => 'Các ảnh đã được xóa',
|
||||
'image_preview' => 'Xem trước Ảnh',
|
||||
'image_upload_success' => 'Ảnh đã tải lên thành công',
|
||||
|
||||
@@ -62,58 +62,58 @@ return [
|
||||
'table' => 'Bảng',
|
||||
'insert_image' => 'Chèn hình ảnh',
|
||||
'insert_image_title' => 'Chèn/Sửa hình ảnh',
|
||||
'insert_link' => 'Insert/edit link',
|
||||
'insert_link_title' => 'Insert/Edit Link',
|
||||
'insert_horizontal_line' => 'Insert horizontal line',
|
||||
'insert_code_block' => 'Insert code block',
|
||||
'edit_code_block' => 'Edit code block',
|
||||
'insert_drawing' => 'Insert/edit drawing',
|
||||
'drawing_manager' => 'Drawing manager',
|
||||
'insert_media' => 'Insert/edit media',
|
||||
'insert_media_title' => 'Insert/Edit Media',
|
||||
'clear_formatting' => 'Clear formatting',
|
||||
'source_code' => 'Source code',
|
||||
'source_code_title' => 'Source Code',
|
||||
'fullscreen' => 'Fullscreen',
|
||||
'image_options' => 'Image options',
|
||||
'insert_link' => 'Chèn/sửa liên kết',
|
||||
'insert_link_title' => 'Chèn/sửa liên kết',
|
||||
'insert_horizontal_line' => 'Chèn đường ngang',
|
||||
'insert_code_block' => 'Chèn khối mã',
|
||||
'edit_code_block' => 'Chỉnh sửa khối mã',
|
||||
'insert_drawing' => 'Chèn/chỉnh sửa bản vẻ',
|
||||
'drawing_manager' => 'Quản lý hình vẽ',
|
||||
'insert_media' => 'Chèn/chỉnh sửa media',
|
||||
'insert_media_title' => 'Chèn/chỉnh sửa media',
|
||||
'clear_formatting' => 'Xóa định dạng',
|
||||
'source_code' => 'Mã nguồn',
|
||||
'source_code_title' => 'Mã Nguồn',
|
||||
'fullscreen' => 'Toàn màn hình',
|
||||
'image_options' => 'Tuỳ chọn hình ảnh',
|
||||
|
||||
// Tables
|
||||
'table_properties' => 'Table properties',
|
||||
'table_properties_title' => 'Table Properties',
|
||||
'delete_table' => 'Delete table',
|
||||
'insert_row_before' => 'Insert row before',
|
||||
'insert_row_after' => 'Insert row after',
|
||||
'delete_row' => 'Delete row',
|
||||
'insert_column_before' => 'Insert column before',
|
||||
'insert_column_after' => 'Insert column after',
|
||||
'delete_column' => 'Delete column',
|
||||
'table_cell' => 'Cell',
|
||||
'table_row' => 'Row',
|
||||
'table_column' => 'Column',
|
||||
'cell_properties' => 'Cell properties',
|
||||
'cell_properties_title' => 'Cell Properties',
|
||||
'cell_type' => 'Cell type',
|
||||
'cell_type_cell' => 'Cell',
|
||||
'cell_scope' => 'Scope',
|
||||
'cell_type_header' => 'Header cell',
|
||||
'merge_cells' => 'Merge cells',
|
||||
'split_cell' => 'Split cell',
|
||||
'table_row_group' => 'Row Group',
|
||||
'table_column_group' => 'Column Group',
|
||||
'horizontal_align' => 'Horizontal align',
|
||||
'vertical_align' => 'Vertical align',
|
||||
'border_width' => 'Border width',
|
||||
'border_style' => 'Border style',
|
||||
'border_color' => 'Border color',
|
||||
'row_properties' => 'Row properties',
|
||||
'row_properties_title' => 'Row Properties',
|
||||
'cut_row' => 'Cut row',
|
||||
'copy_row' => 'Copy row',
|
||||
'paste_row_before' => 'Paste row before',
|
||||
'paste_row_after' => 'Paste row after',
|
||||
'row_type' => 'Row type',
|
||||
'row_type_header' => 'Header',
|
||||
'row_type_body' => 'Body',
|
||||
'table_properties' => 'Thuộc tính bảng',
|
||||
'table_properties_title' => 'Thuộc tính bảng',
|
||||
'delete_table' => 'Xóa bảng',
|
||||
'insert_row_before' => 'Chèn thêm hàng ở trên',
|
||||
'insert_row_after' => 'Chèn thêm hàng ở dưới',
|
||||
'delete_row' => 'Xóa hàng',
|
||||
'insert_column_before' => 'Chèn cột mới vào bên trái',
|
||||
'insert_column_after' => 'Chèn cột mới vào bên phải',
|
||||
'delete_column' => 'Xóa cột',
|
||||
'table_cell' => 'Ô',
|
||||
'table_row' => 'Hàng',
|
||||
'table_column' => 'Cột',
|
||||
'cell_properties' => 'Đặt thuộc tính ô',
|
||||
'cell_properties_title' => 'Đặt thuộc tính ô',
|
||||
'cell_type' => 'Kiểu ô',
|
||||
'cell_type_cell' => 'Ô',
|
||||
'cell_scope' => 'Phạm vi',
|
||||
'cell_type_header' => 'Ô tiêu đề',
|
||||
'merge_cells' => 'Sát nhập các ô',
|
||||
'split_cell' => 'Chia tách ô',
|
||||
'table_row_group' => 'Nhóm hàng',
|
||||
'table_column_group' => 'Nhóm cột',
|
||||
'horizontal_align' => 'Căn chỉnh theo chiều ngang',
|
||||
'vertical_align' => 'Căn chỉnh theo chiều dọc',
|
||||
'border_width' => 'Chiều rộng viền',
|
||||
'border_style' => 'Kiểu đường viền',
|
||||
'border_color' => 'Màu viền',
|
||||
'row_properties' => 'Đặt thuộc tính hàng',
|
||||
'row_properties_title' => 'Đặt thuộc tính hàng',
|
||||
'cut_row' => 'Tách cột',
|
||||
'copy_row' => 'Sao chép cột',
|
||||
'paste_row_before' => 'Dán cột vào bên trái',
|
||||
'paste_row_after' => 'Dán cột vào bên phải',
|
||||
'row_type' => 'Kiểu hàng',
|
||||
'row_type_header' => 'Tiêu đề',
|
||||
'row_type_body' => 'Nội dung',
|
||||
'row_type_footer' => 'Cuối trang',
|
||||
'alignment' => 'Canh lề',
|
||||
'cut_column' => 'Cắt cột',
|
||||
@@ -134,39 +134,39 @@ return [
|
||||
'cell_border_inset' => 'Inset',
|
||||
'cell_border_outset' => 'Outset',
|
||||
'cell_border_none' => 'None',
|
||||
'cell_border_hidden' => 'Hidden',
|
||||
'cell_border_hidden' => 'Ẩn',
|
||||
|
||||
// Images, links, details/summary & embed
|
||||
'source' => 'Source',
|
||||
'alt_desc' => 'Alternative description',
|
||||
'source' => 'Nguồn',
|
||||
'alt_desc' => 'Mô tả thay thế',
|
||||
'embed' => 'Mã nhúng',
|
||||
'paste_embed' => 'Paste your embed code below:',
|
||||
'paste_embed' => 'Dán mã đính kèm của bạn vào bên dưới:',
|
||||
'url' => 'Đường dẫn',
|
||||
'text_to_display' => 'Các văn bản hiển thị',
|
||||
'title' => 'Title',
|
||||
'open_link' => 'Open link',
|
||||
'open_link_in' => 'Open link in...',
|
||||
'open_link_current' => 'Current window',
|
||||
'open_link_new' => 'New window',
|
||||
'remove_link' => 'Remove link',
|
||||
'title' => 'Tiêu đề',
|
||||
'open_link' => 'Mở liên kết',
|
||||
'open_link_in' => 'Mở liên kết trong...',
|
||||
'open_link_current' => 'Cửa sổ hiện tại',
|
||||
'open_link_new' => 'Cửa sổ mới',
|
||||
'remove_link' => 'Loại bỏ liên kết',
|
||||
'insert_collapsible' => 'Insert collapsible block',
|
||||
'collapsible_unwrap' => 'Unwrap',
|
||||
'edit_label' => 'Edit label',
|
||||
'edit_label' => 'Chỉnh sửa nhãn',
|
||||
'toggle_open_closed' => 'Toggle open/closed',
|
||||
'collapsible_edit' => 'Edit collapsible block',
|
||||
'toggle_label' => 'Toggle label',
|
||||
|
||||
// About view
|
||||
'about' => 'About the editor',
|
||||
'about_title' => 'About the WYSIWYG Editor',
|
||||
'editor_license' => 'Editor License & Copyright',
|
||||
'editor_tiny_license' => 'This editor is built using :tinyLink which is provided under the MIT license.',
|
||||
'editor_tiny_license_link' => 'The copyright and license details of TinyMCE can be found here.',
|
||||
'save_continue' => 'Save Page & Continue',
|
||||
'about' => 'Giới thiệu về trình soạn thảo',
|
||||
'about_title' => 'Giới thiệu về trình soạn thảo WYSIWYG',
|
||||
'editor_license' => 'Giáy phép & Bản quyền của trình soạn thảo',
|
||||
'editor_tiny_license' => 'Trình soạn thảo này được xây dựng bằng các sử dụng :tinyLink theo giấy phép MIT.',
|
||||
'editor_tiny_license_link' => 'Chi tiết về bản quyền và giấy phép của TinyMCE có thể được tìm thấy tại đây.',
|
||||
'save_continue' => 'Lưu trang & Tiếp tục',
|
||||
'callouts_cycle' => '(Keep pressing to toggle through types)',
|
||||
'link_selector' => 'Link to content',
|
||||
'shortcuts' => 'Shortcuts',
|
||||
'shortcut' => 'Shortcut',
|
||||
'link_selector' => 'Liên kết đến nội dung',
|
||||
'shortcuts' => 'Phím tắt',
|
||||
'shortcut' => 'Phím tắt',
|
||||
'shortcuts_intro' => 'The following shortcuts are available in the editor:',
|
||||
'windows_linux' => '(Windows/Linux)',
|
||||
'mac' => '(Mac)',
|
||||
|
||||
@@ -8,7 +8,7 @@ return [
|
||||
'image_select' => '选择图片',
|
||||
'image_upload' => '上传图片',
|
||||
'image_intro' => '您可以在此选择和管理以前上传到系统的图片。',
|
||||
'image_intro_upload' => '上传一张新图片,通过拖放图片到这个窗口,或者使用上面的“上传图片”按钮',
|
||||
'image_intro_upload' => '通过将图片文件拖到此窗口或使用上面的“上传图片”按钮来上传新图片。',
|
||||
'image_all' => '全部',
|
||||
'image_all_title' => '查看所有图片',
|
||||
'image_book_title' => '查看上传到本书的图片',
|
||||
|
||||
@@ -313,10 +313,10 @@ return [
|
||||
'attachments_explain_instant_save' => '这里的更改将立即保存。',
|
||||
'attachments_upload' => '上传文件',
|
||||
'attachments_link' => '附加链接',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_upload_drop' => '或者,您也可以将文件拖放到这里并将其作为附件上传',
|
||||
'attachments_set_link' => '设置链接',
|
||||
'attachments_delete' => '您确定要删除此附件吗?',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_dropzone' => '将文件拖放到此处上传',
|
||||
'attachments_no_files' => '尚未上传文件',
|
||||
'attachments_explain_link' => '如果您不想上传文件,则可以附加链接,这可以是指向其他页面的链接,也可以是指向云端文件的链接。',
|
||||
'attachments_link_name' => '链接名',
|
||||
|
||||
@@ -53,7 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => '找不到附件',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
'attachment_upload_error' => '上传附件时出错',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => '无法保存草稿,确保您在保存页面之前已经连接到互联网',
|
||||
|
||||
28
public/dist/app.js
vendored
28
public/dist/app.js
vendored
File diff suppressed because one or more lines are too long
30
public/dist/code.js
vendored
30
public/dist/code.js
vendored
File diff suppressed because one or more lines are too long
2
public/dist/export-styles.css
vendored
2
public/dist/export-styles.css
vendored
File diff suppressed because one or more lines are too long
2
public/dist/styles.css
vendored
2
public/dist/styles.css
vendored
File diff suppressed because one or more lines are too long
@@ -6,7 +6,7 @@ import {bracketMatching} from '@codemirror/language';
|
||||
import {
|
||||
defaultKeymap, history, historyKeymap, indentWithTab,
|
||||
} from '@codemirror/commands';
|
||||
import {EditorState} from '@codemirror/state';
|
||||
import {Compartment, EditorState} from '@codemirror/state';
|
||||
import {getTheme} from './themes';
|
||||
|
||||
/**
|
||||
@@ -17,12 +17,37 @@ function common(parentEl) {
|
||||
return [
|
||||
getTheme(parentEl),
|
||||
lineNumbers(),
|
||||
highlightActiveLineGutter(),
|
||||
drawSelection(),
|
||||
dropCursor(),
|
||||
bracketMatching(),
|
||||
rectangularSelection(),
|
||||
highlightActiveLine(),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {({extension: Extension}|readonly Extension[])[]}
|
||||
*/
|
||||
function getDynamicActiveLineHighlighter() {
|
||||
const highlightingCompartment = new Compartment();
|
||||
const domEvents = {
|
||||
focus(event, view) {
|
||||
view.dispatch({
|
||||
effects: highlightingCompartment.reconfigure([
|
||||
highlightActiveLineGutter(),
|
||||
highlightActiveLine(),
|
||||
]),
|
||||
});
|
||||
},
|
||||
blur(event, view) {
|
||||
view.dispatch({
|
||||
effects: highlightingCompartment.reconfigure([]),
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
return [
|
||||
highlightingCompartment.of([]),
|
||||
EditorView.domEventHandlers(domEvents),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -33,6 +58,7 @@ function common(parentEl) {
|
||||
export function viewerExtensions(parentEl) {
|
||||
return [
|
||||
...common(parentEl),
|
||||
getDynamicActiveLineHighlighter(),
|
||||
keymap.of([
|
||||
...defaultKeymap,
|
||||
]),
|
||||
@@ -47,6 +73,8 @@ export function viewerExtensions(parentEl) {
|
||||
export function editorExtensions(parentEl) {
|
||||
return [
|
||||
...common(parentEl),
|
||||
highlightActiveLineGutter(),
|
||||
highlightActiveLine(),
|
||||
history(),
|
||||
keymap.of([
|
||||
...defaultKeymap,
|
||||
|
||||
@@ -8,7 +8,15 @@ export class CodeEditor extends Component {
|
||||
*/
|
||||
editor = null;
|
||||
|
||||
callback = null;
|
||||
/**
|
||||
* @type {?Function}
|
||||
*/
|
||||
saveCallback = null;
|
||||
|
||||
/**
|
||||
* @type {?Function}
|
||||
*/
|
||||
cancelCallback = null;
|
||||
|
||||
history = {};
|
||||
|
||||
@@ -115,15 +123,16 @@ export class CodeEditor extends Component {
|
||||
}
|
||||
|
||||
save() {
|
||||
if (this.callback) {
|
||||
this.callback(this.editor.getContent(), this.languageInput.value);
|
||||
if (this.saveCallback) {
|
||||
this.saveCallback(this.editor.getContent(), this.languageInput.value);
|
||||
}
|
||||
this.hide();
|
||||
}
|
||||
|
||||
async open(code, language, callback) {
|
||||
async open(code, language, saveCallback, cancelCallback) {
|
||||
this.languageInput.value = language;
|
||||
this.callback = callback;
|
||||
this.saveCallback = saveCallback;
|
||||
this.cancelCallback = cancelCallback;
|
||||
|
||||
await this.show();
|
||||
this.languageInputChange(language);
|
||||
@@ -141,6 +150,9 @@ export class CodeEditor extends Component {
|
||||
this.editor.focus();
|
||||
}, () => {
|
||||
this.addHistory();
|
||||
if (this.cancelCallback) {
|
||||
this.cancelCallback();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ export class Dropzone extends Component {
|
||||
this.uploadLimitMessage = this.$opts.uploadLimitMessage;
|
||||
this.zoneText = this.$opts.zoneText;
|
||||
this.fileAcceptTypes = this.$opts.fileAccept;
|
||||
this.allowMultiple = this.$opts.allowMultiple === 'true';
|
||||
|
||||
this.setupListeners();
|
||||
}
|
||||
@@ -83,7 +84,12 @@ export class Dropzone extends Component {
|
||||
}
|
||||
|
||||
manualSelectHandler() {
|
||||
const input = elem('input', {type: 'file', style: 'left: -400px; visibility: hidden; position: fixed;', accept: this.fileAcceptTypes});
|
||||
const input = elem('input', {
|
||||
type: 'file',
|
||||
style: 'left: -400px; visibility: hidden; position: fixed;',
|
||||
accept: this.fileAcceptTypes,
|
||||
multiple: this.allowMultiple ? '' : null,
|
||||
});
|
||||
this.container.append(input);
|
||||
input.click();
|
||||
input.addEventListener('change', () => {
|
||||
|
||||
@@ -25,7 +25,7 @@ export class Shortcuts extends Component {
|
||||
|
||||
setupListeners() {
|
||||
window.addEventListener('keydown', event => {
|
||||
if (event.target.closest('input, select, textarea')) {
|
||||
if (event.target.closest('input, select, textarea, .cm-editor')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,11 @@ export function elem(tagName, attrs = {}, children = []) {
|
||||
const el = document.createElement(tagName);
|
||||
|
||||
for (const [key, val] of Object.entries(attrs)) {
|
||||
el.setAttribute(key, val);
|
||||
if (val === null) {
|
||||
el.removeAttribute(key);
|
||||
} else {
|
||||
el.setAttribute(key, val);
|
||||
}
|
||||
}
|
||||
|
||||
for (const child of children) {
|
||||
|
||||
@@ -268,7 +268,7 @@ export function build(options) {
|
||||
'-doc-root[doc-root|#text]',
|
||||
'-li[details]',
|
||||
'+code-block[pre]',
|
||||
'+doc-root[p|h1|h2|h3|h4|h5|h6|blockquote|code-block|div]',
|
||||
'+doc-root[p|h1|h2|h3|h4|h5|h6|blockquote|code-block|div|hr]',
|
||||
].join(','),
|
||||
plugins: gatherPlugins(options),
|
||||
contextmenu: false,
|
||||
|
||||
@@ -9,9 +9,16 @@ function elemIsCodeBlock(elem) {
|
||||
* @param {function(string, string)} callback (Receives (code: string,language: string)
|
||||
*/
|
||||
function showPopup(editor, code, language, callback) {
|
||||
window.$components.first('code-editor').open(code, language, (newCode, newLang) => {
|
||||
/** @var {CodeEditor} codeEditor * */
|
||||
const codeEditor = window.$components.first('code-editor');
|
||||
const bookMark = editor.selection.getBookmark();
|
||||
codeEditor.open(code, language, (newCode, newLang) => {
|
||||
callback(newCode, newLang);
|
||||
editor.focus();
|
||||
editor.selection.moveToBookmark(bookMark);
|
||||
}, () => {
|
||||
editor.focus();
|
||||
editor.selection.moveToBookmark(bookMark);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -46,8 +53,8 @@ function defineCodeBlockCustomElement(editor) {
|
||||
super();
|
||||
this.attachShadow({mode: 'open'});
|
||||
|
||||
const stylesToCopy = document.querySelectorAll('link[rel="stylesheet"]:not([media="print"])');
|
||||
const copiedStyles = Array.from(stylesToCopy).map(styleEl => styleEl.cloneNode(false));
|
||||
const stylesToCopy = document.head.querySelectorAll('link[rel="stylesheet"]:not([media="print"]),style');
|
||||
const copiedStyles = Array.from(stylesToCopy).map(styleEl => styleEl.cloneNode(true));
|
||||
|
||||
const cmContainer = document.createElement('div');
|
||||
cmContainer.style.pointerEvents = 'none';
|
||||
|
||||
@@ -14,4 +14,5 @@ export const blockElementTypes = [
|
||||
'ul',
|
||||
'ol',
|
||||
'table',
|
||||
'hr',
|
||||
];
|
||||
|
||||
@@ -202,7 +202,7 @@ pre {
|
||||
pre {
|
||||
padding-left: 12px;
|
||||
}
|
||||
pre:after {
|
||||
pre:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ table {
|
||||
pre {
|
||||
padding-left: 12px;
|
||||
}
|
||||
pre:after {
|
||||
pre:before {
|
||||
display: none;
|
||||
}
|
||||
pre code {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<div component="sortable-list" option:sortable-list:handle-selector=".handle">
|
||||
<div component="sortable-list"
|
||||
option:sortable-list:handle-selector=".handle, a">
|
||||
@foreach($attachments as $attachment)
|
||||
<div component="ajax-delete-row"
|
||||
option:ajax-delete-row:url="{{ url('/attachments/' . $attachment->id) }}"
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
option:dropzone:upload-limit-message="{{ trans('errors.server_upload_limit') }}"
|
||||
option:dropzone:zone-text="{{ trans('entities.attachments_dropzone') }}"
|
||||
option:dropzone:file-accept="*"
|
||||
option:dropzone:allow-multiple="true"
|
||||
class="px-l files">
|
||||
|
||||
<div refs="attachments@list-container dropzone@drop-target" class="relative">
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
option:dropzone:upload-limit-message="{{ trans('errors.server_upload_limit') }}"
|
||||
option:dropzone:zone-text="{{ trans('components.image_dropzone_drop') }}"
|
||||
option:dropzone:file-accept="image/*"
|
||||
option:dropzone:allow-multiple="true"
|
||||
option:image-manager:uploaded-to="{{ $uploaded_to ?? 0 }}"
|
||||
class="image-manager">
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace Tests\Commands;
|
||||
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Symfony\Component\Console\Exception\RuntimeException;
|
||||
use Tests\TestCase;
|
||||
|
||||
@@ -34,6 +35,13 @@ class UpdateUrlCommandTest extends TestCase
|
||||
$this->artisan('bookstack:update-url https://cats.example.com');
|
||||
}
|
||||
|
||||
public function test_command_force_option_skips_prompt()
|
||||
{
|
||||
$this->artisan('bookstack:update-url --force https://cats.example.com/donkey https://cats.example.com/monkey')
|
||||
->expectsOutputToContain('URL update procedure complete')
|
||||
->assertSuccessful();
|
||||
}
|
||||
|
||||
public function test_command_updates_settings()
|
||||
{
|
||||
setting()->put('my-custom-item', 'https://example.com/donkey/cat');
|
||||
|
||||
Reference in New Issue
Block a user