Merge branch 'development' into release

This commit is contained in:
Dan Brown 2022-04-29 15:55:05 +01:00
commit 8ffc3a4abf
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
191 changed files with 4509 additions and 1350 deletions

View File

@ -274,7 +274,7 @@ AVATAR_URL=
# Enable diagrams.net integration # Enable diagrams.net integration
# Can simply be true/false to enable/disable the integration. # Can simply be true/false to enable/disable the integration.
# Alternatively, It can be URL to the diagrams.net instance you want to use. # Alternatively, It can be URL to the diagrams.net instance you want to use.
# For URLs, The following URL parameters should be included: embed=1&proto=json&spin=1 # For URLs, The following URL parameters should be included: embed=1&proto=json&spin=1&configure=1
DRAWIO=true DRAWIO=true
# Default item listing view # Default item listing view

View File

@ -165,7 +165,7 @@ Francesco Franchina (ffranchina) :: Italian
Aimrane Kds (aimrane.kds) :: Arabic Aimrane Kds (aimrane.kds) :: Arabic
whenwesober :: Indonesian whenwesober :: Indonesian
Rem (remkovdhoef) :: Dutch Rem (remkovdhoef) :: Dutch
syn7ax69 :: Bulgarian; Turkish syn7ax69 :: Bulgarian; Turkish; German
Blaade :: French Blaade :: French
Behzad HosseinPoor (behzad.hp) :: Persian Behzad HosseinPoor (behzad.hp) :: Persian
Ole Aldric (Swoy) :: Norwegian Bokmal Ole Aldric (Swoy) :: Norwegian Bokmal
@ -238,3 +238,7 @@ pedromcsousa :: Portuguese
Nir Louk (looknear) :: Hebrew Nir Louk (looknear) :: Hebrew
Alex (qianmengnet) :: Chinese Simplified Alex (qianmengnet) :: Chinese Simplified
stothew :: German stothew :: German
sgenc :: Turkish
Shukrullo (vodiylik) :: Uzbek
William W. (Nevnt) :: Chinese Traditional
eamaro :: Portuguese

View File

@ -71,7 +71,7 @@ return [
'locale' => env('APP_LANG', 'en'), 'locale' => env('APP_LANG', 'en'),
// Locales available // Locales available
'locales' => ['en', 'ar', 'bg', 'bs', 'ca', 'cs', 'da', 'de', 'de_informal', 'es', 'es_AR', 'et', 'eu', 'fa', 'fr', 'he', 'hr', 'hu', 'id', 'it', 'ja', 'ko', 'lt', 'lv', 'nl', 'nb', 'pt', 'pt_BR', 'sk', 'sl', 'sv', 'pl', 'ru', 'th', 'tr', 'uk', 'vi', 'zh_CN', 'zh_TW'], 'locales' => ['en', 'ar', 'bg', 'bs', 'ca', 'cs', 'da', 'de', 'de_informal', 'es', 'es_AR', 'et', 'eu', 'fa', 'fr', 'he', 'hr', 'hu', 'id', 'it', 'ja', 'ko', 'lt', 'lv', 'nl', 'nb', 'pt', 'pt_BR', 'sk', 'sl', 'sv', 'pl', 'ru', 'th', 'tr', 'uk', 'uz', 'vi', 'zh_CN', 'zh_TW'],
// Application Fallback Locale // Application Fallback Locale
'fallback_locale' => 'en', 'fallback_locale' => 'en',

View File

@ -10,10 +10,16 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\Relations\MorphTo;
/** /**
* @property int $id
* @property int $deleted_by
* @property string $deletable_type
* @property int $deletable_id
* @property Deletable $deletable * @property Deletable $deletable
*/ */
class Deletion extends Model implements Loggable class Deletion extends Model implements Loggable
{ {
protected $hidden = [];
/** /**
* Get the related deletable record. * Get the related deletable record.
*/ */

View File

@ -22,6 +22,7 @@ use Illuminate\Database\Eloquent\Relations\HasOne;
* @property bool $template * @property bool $template
* @property bool $draft * @property bool $draft
* @property int $revision_count * @property int $revision_count
* @property string $editor
* @property Chapter $chapter * @property Chapter $chapter
* @property Collection $attachments * @property Collection $attachments
* @property Collection $revisions * @property Collection $revisions

View File

@ -12,6 +12,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
* *
* @property mixed $id * @property mixed $id
* @property int $page_id * @property int $page_id
* @property string $name
* @property string $slug * @property string $slug
* @property string $book_slug * @property string $book_slug
* @property int $created_by * @property int $created_by
@ -21,13 +22,14 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
* @property string $summary * @property string $summary
* @property string $markdown * @property string $markdown
* @property string $html * @property string $html
* @property string $text
* @property int $revision_number * @property int $revision_number
* @property Page $page * @property Page $page
* @property-read ?User $createdBy * @property-read ?User $createdBy
*/ */
class PageRevision extends Model class PageRevision extends Model
{ {
protected $fillable = ['name', 'html', 'text', 'markdown', 'summary']; protected $fillable = ['name', 'text', 'summary'];
protected $hidden = ['html', 'markdown', 'restricted', 'text']; protected $hidden = ['html', 'markdown', 'restricted', 'text'];
/** /**

View File

@ -11,8 +11,8 @@ use Illuminate\Http\UploadedFile;
class BaseRepo class BaseRepo
{ {
protected $tagRepo; protected TagRepo $tagRepo;
protected $imageRepo; protected ImageRepo $imageRepo;
public function __construct(TagRepo $tagRepo, ImageRepo $imageRepo) public function __construct(TagRepo $tagRepo, ImageRepo $imageRepo)
{ {
@ -58,6 +58,7 @@ class BaseRepo
if (isset($input['tags'])) { if (isset($input['tags'])) {
$this->tagRepo->saveTagsToEntity($entity, $input['tags']); $this->tagRepo->saveTagsToEntity($entity, $input['tags']);
$entity->touch();
} }
$entity->rebuildPermissions(); $entity->rebuildPermissions();

View File

@ -0,0 +1,36 @@
<?php
namespace BookStack\Entities\Repos;
use BookStack\Actions\ActivityType;
use BookStack\Entities\Models\Deletion;
use BookStack\Entities\Tools\TrashCan;
use BookStack\Facades\Activity;
class DeletionRepo
{
private TrashCan $trashCan;
public function __construct(TrashCan $trashCan)
{
$this->trashCan = $trashCan;
}
public function restore(int $id): int
{
/** @var Deletion $deletion */
$deletion = Deletion::query()->findOrFail($id);
Activity::add(ActivityType::RECYCLE_BIN_RESTORE, $deletion);
return $this->trashCan->restoreFromDeletion($deletion);
}
public function destroy(int $id): int
{
/** @var Deletion $deletion */
$deletion = Deletion::query()->findOrFail($id);
Activity::add(ActivityType::RECYCLE_BIN_DESTROY, $deletion);
return $this->trashCan->destroyFromDeletion($deletion);
}
}

View File

@ -10,6 +10,7 @@ use BookStack\Entities\Models\Page;
use BookStack\Entities\Models\PageRevision; use BookStack\Entities\Models\PageRevision;
use BookStack\Entities\Tools\BookContents; use BookStack\Entities\Tools\BookContents;
use BookStack\Entities\Tools\PageContent; use BookStack\Entities\Tools\PageContent;
use BookStack\Entities\Tools\PageEditorData;
use BookStack\Entities\Tools\TrashCan; use BookStack\Entities\Tools\TrashCan;
use BookStack\Exceptions\MoveOperationException; use BookStack\Exceptions\MoveOperationException;
use BookStack\Exceptions\NotFoundException; use BookStack\Exceptions\NotFoundException;
@ -217,11 +218,25 @@ class PageRepo
} }
$pageContent = new PageContent($page); $pageContent = new PageContent($page);
if (!empty($input['markdown'] ?? '')) { $currentEditor = $page->editor ?: PageEditorData::getSystemDefaultEditor();
$newEditor = $currentEditor;
$haveInput = isset($input['markdown']) || isset($input['html']);
$inputEmpty = empty($input['markdown']) && empty($input['html']);
if ($haveInput && $inputEmpty) {
$pageContent->setNewHTML('');
} elseif (!empty($input['markdown']) && is_string($input['markdown'])) {
$newEditor = 'markdown';
$pageContent->setNewMarkdown($input['markdown']); $pageContent->setNewMarkdown($input['markdown']);
} elseif (isset($input['html'])) { } elseif (isset($input['html'])) {
$newEditor = 'wysiwyg';
$pageContent->setNewHTML($input['html']); $pageContent->setNewHTML($input['html']);
} }
if ($newEditor !== $currentEditor && userCan('editor-change')) {
$page->editor = $newEditor;
}
} }
/** /**
@ -229,8 +244,12 @@ class PageRepo
*/ */
protected function savePageRevision(Page $page, string $summary = null): PageRevision protected function savePageRevision(Page $page, string $summary = null): PageRevision
{ {
$revision = new PageRevision($page->getAttributes()); $revision = new PageRevision();
$revision->name = $page->name;
$revision->html = $page->html;
$revision->markdown = $page->markdown;
$revision->text = $page->text;
$revision->page_id = $page->id; $revision->page_id = $page->id;
$revision->slug = $page->slug; $revision->slug = $page->slug;
$revision->book_slug = $page->book->slug; $revision->book_slug = $page->book->slug;
@ -260,10 +279,15 @@ class PageRepo
return $page; return $page;
} }
// Otherwise save the data to a revision // Otherwise, save the data to a revision
$draft = $this->getPageRevisionToUpdate($page); $draft = $this->getPageRevisionToUpdate($page);
$draft->fill($input); $draft->fill($input);
if (setting('app-editor') !== 'markdown') {
if (!empty($input['markdown'])) {
$draft->markdown = $input['markdown'];
$draft->html = '';
} else {
$draft->html = $input['html'];
$draft->markdown = ''; $draft->markdown = '';
} }

View File

@ -0,0 +1,20 @@
<?php
namespace BookStack\Entities\Tools\Markdown;
use League\HTMLToMarkdown\Converter\DivConverter;
use League\HTMLToMarkdown\ElementInterface;
class CustomDivConverter extends DivConverter
{
public function convert(ElementInterface $element): string
{
// Clean up draw.io diagrams
$drawIoDiagram = $element->getAttribute('drawio-diagram');
if ($drawIoDiagram) {
return "<div drawio-diagram=\"{$drawIoDiagram}\">{$element->getValue()}</div>\n\n";
}
return parent::convert($element);
}
}

View File

@ -0,0 +1,25 @@
<?php
namespace BookStack\Entities\Tools\Markdown;
use League\HTMLToMarkdown\Converter\ImageConverter;
use League\HTMLToMarkdown\ElementInterface;
class CustomImageConverter extends ImageConverter
{
public function convert(ElementInterface $element): string
{
$parent = $element->getParent();
// Remain as HTML if within diagram block.
$withinDrawing = $parent && !empty($parent->getAttribute('drawio-diagram'));
if ($withinDrawing) {
$src = e($element->getAttribute('src'));
$alt = e($element->getAttribute('alt'));
return "<img src=\"{$src}\" alt=\"{$alt}\"/>";
}
return parent::convert($element);
}
}

View File

@ -9,7 +9,7 @@ class CustomParagraphConverter extends ParagraphConverter
{ {
public function convert(ElementInterface $element): string public function convert(ElementInterface $element): string
{ {
$class = $element->getAttribute('class'); $class = e($element->getAttribute('class'));
if (strpos($class, 'callout') !== false) { if (strpos($class, 'callout') !== false) {
return "<{$element->getTagName()} class=\"{$class}\">{$element->getValue()}</{$element->getTagName()}>\n\n"; return "<{$element->getTagName()} class=\"{$class}\">{$element->getValue()}</{$element->getTagName()}>\n\n";
} }

View File

@ -5,12 +5,10 @@ namespace BookStack\Entities\Tools\Markdown;
use League\HTMLToMarkdown\Converter\BlockquoteConverter; use League\HTMLToMarkdown\Converter\BlockquoteConverter;
use League\HTMLToMarkdown\Converter\CodeConverter; use League\HTMLToMarkdown\Converter\CodeConverter;
use League\HTMLToMarkdown\Converter\CommentConverter; use League\HTMLToMarkdown\Converter\CommentConverter;
use League\HTMLToMarkdown\Converter\DivConverter;
use League\HTMLToMarkdown\Converter\EmphasisConverter; use League\HTMLToMarkdown\Converter\EmphasisConverter;
use League\HTMLToMarkdown\Converter\HardBreakConverter; use League\HTMLToMarkdown\Converter\HardBreakConverter;
use League\HTMLToMarkdown\Converter\HeaderConverter; use League\HTMLToMarkdown\Converter\HeaderConverter;
use League\HTMLToMarkdown\Converter\HorizontalRuleConverter; use League\HTMLToMarkdown\Converter\HorizontalRuleConverter;
use League\HTMLToMarkdown\Converter\ImageConverter;
use League\HTMLToMarkdown\Converter\LinkConverter; use League\HTMLToMarkdown\Converter\LinkConverter;
use League\HTMLToMarkdown\Converter\ListBlockConverter; use League\HTMLToMarkdown\Converter\ListBlockConverter;
use League\HTMLToMarkdown\Converter\ListItemConverter; use League\HTMLToMarkdown\Converter\ListItemConverter;
@ -21,7 +19,7 @@ use League\HTMLToMarkdown\HtmlConverter;
class HtmlToMarkdown class HtmlToMarkdown
{ {
protected $html; protected string $html;
public function __construct(string $html) public function __construct(string $html)
{ {
@ -75,12 +73,12 @@ class HtmlToMarkdown
$environment->addConverter(new BlockquoteConverter()); $environment->addConverter(new BlockquoteConverter());
$environment->addConverter(new CodeConverter()); $environment->addConverter(new CodeConverter());
$environment->addConverter(new CommentConverter()); $environment->addConverter(new CommentConverter());
$environment->addConverter(new DivConverter()); $environment->addConverter(new CustomDivConverter());
$environment->addConverter(new EmphasisConverter()); $environment->addConverter(new EmphasisConverter());
$environment->addConverter(new HardBreakConverter()); $environment->addConverter(new HardBreakConverter());
$environment->addConverter(new HeaderConverter()); $environment->addConverter(new HeaderConverter());
$environment->addConverter(new HorizontalRuleConverter()); $environment->addConverter(new HorizontalRuleConverter());
$environment->addConverter(new ImageConverter()); $environment->addConverter(new CustomImageConverter());
$environment->addConverter(new LinkConverter()); $environment->addConverter(new LinkConverter());
$environment->addConverter(new ListBlockConverter()); $environment->addConverter(new ListBlockConverter());
$environment->addConverter(new ListItemConverter()); $environment->addConverter(new ListItemConverter());
@ -88,6 +86,7 @@ class HtmlToMarkdown
$environment->addConverter(new PreformattedConverter()); $environment->addConverter(new PreformattedConverter());
$environment->addConverter(new TextConverter()); $environment->addConverter(new TextConverter());
$environment->addConverter(new CheckboxConverter()); $environment->addConverter(new CheckboxConverter());
$environment->addConverter(new SpacedTagFallbackConverter());
return $environment; return $environment;
} }

View File

@ -0,0 +1,35 @@
<?php
namespace BookStack\Entities\Tools\Markdown;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
use League\CommonMark\Block\Element\ListItem;
use League\CommonMark\CommonMarkConverter;
use League\CommonMark\Environment;
use League\CommonMark\Extension\Table\TableExtension;
use League\CommonMark\Extension\TaskList\TaskListExtension;
class MarkdownToHtml
{
protected string $markdown;
public function __construct(string $markdown)
{
$this->markdown = $markdown;
}
public function convert(): string
{
$environment = Environment::createCommonMarkEnvironment();
$environment->addExtension(new TableExtension());
$environment->addExtension(new TaskListExtension());
$environment->addExtension(new CustomStrikeThroughExtension());
$environment = Theme::dispatch(ThemeEvents::COMMONMARK_ENVIRONMENT_CONFIGURE, $environment) ?? $environment;
$converter = new CommonMarkConverter([], $environment);
$environment->addBlockRenderer(ListItem::class, new CustomListItemRenderer(), 10);
return $converter->convertToHtml($this->markdown);
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace BookStack\Entities\Tools\Markdown;
use League\HTMLToMarkdown\Converter\ConverterInterface;
use League\HTMLToMarkdown\ElementInterface;
/**
* For certain defined tags, add additional spacing upon the retained HTML content
* to separate it out from anything that may be markdown soon afterwards or within.
*/
class SpacedTagFallbackConverter implements ConverterInterface
{
public function convert(ElementInterface $element): string
{
return \html_entity_decode($element->getChildrenAsString()) . "\n\n";
}
public function getSupportedTags(): array
{
return ['summary', 'iframe'];
}
}

View File

@ -3,11 +3,8 @@
namespace BookStack\Entities\Tools; namespace BookStack\Entities\Tools;
use BookStack\Entities\Models\Page; use BookStack\Entities\Models\Page;
use BookStack\Entities\Tools\Markdown\CustomListItemRenderer; use BookStack\Entities\Tools\Markdown\MarkdownToHtml;
use BookStack\Entities\Tools\Markdown\CustomStrikeThroughExtension;
use BookStack\Exceptions\ImageUploadException; use BookStack\Exceptions\ImageUploadException;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
use BookStack\Uploads\ImageRepo; use BookStack\Uploads\ImageRepo;
use BookStack\Uploads\ImageService; use BookStack\Uploads\ImageService;
use BookStack\Util\HtmlContentFilter; use BookStack\Util\HtmlContentFilter;
@ -17,15 +14,10 @@ use DOMNode;
use DOMNodeList; use DOMNodeList;
use DOMXPath; use DOMXPath;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use League\CommonMark\Block\Element\ListItem;
use League\CommonMark\CommonMarkConverter;
use League\CommonMark\Environment;
use League\CommonMark\Extension\Table\TableExtension;
use League\CommonMark\Extension\TaskList\TaskListExtension;
class PageContent class PageContent
{ {
protected $page; protected Page $page;
/** /**
* PageContent constructor. * PageContent constructor.
@ -53,28 +45,11 @@ class PageContent
{ {
$markdown = $this->extractBase64ImagesFromMarkdown($markdown); $markdown = $this->extractBase64ImagesFromMarkdown($markdown);
$this->page->markdown = $markdown; $this->page->markdown = $markdown;
$html = $this->markdownToHtml($markdown); $html = (new MarkdownToHtml($markdown))->convert();
$this->page->html = $this->formatHtml($html); $this->page->html = $this->formatHtml($html);
$this->page->text = $this->toPlainText(); $this->page->text = $this->toPlainText();
} }
/**
* Convert the given Markdown content to a HTML string.
*/
protected function markdownToHtml(string $markdown): string
{
$environment = Environment::createCommonMarkEnvironment();
$environment->addExtension(new TableExtension());
$environment->addExtension(new TaskListExtension());
$environment->addExtension(new CustomStrikeThroughExtension());
$environment = Theme::dispatch(ThemeEvents::COMMONMARK_ENVIRONMENT_CONFIGURE, $environment) ?? $environment;
$converter = new CommonMarkConverter([], $environment);
$environment->addBlockRenderer(ListItem::class, new CustomListItemRenderer(), 10);
return $converter->convertToHtml($markdown);
}
/** /**
* Convert all base64 image data to saved images. * Convert all base64 image data to saved images.
*/ */

View File

@ -9,7 +9,7 @@ use Illuminate\Database\Eloquent\Builder;
class PageEditActivity class PageEditActivity
{ {
protected $page; protected Page $page;
/** /**
* PageEditActivity constructor. * PageEditActivity constructor.

View File

@ -0,0 +1,115 @@
<?php
namespace BookStack\Entities\Tools;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Entities\Tools\Markdown\HtmlToMarkdown;
use BookStack\Entities\Tools\Markdown\MarkdownToHtml;
class PageEditorData
{
protected Page $page;
protected PageRepo $pageRepo;
protected string $requestedEditor;
protected array $viewData;
protected array $warnings;
public function __construct(Page $page, PageRepo $pageRepo, string $requestedEditor)
{
$this->page = $page;
$this->pageRepo = $pageRepo;
$this->requestedEditor = $requestedEditor;
$this->viewData = $this->build();
}
public function getViewData(): array
{
return $this->viewData;
}
public function getWarnings(): array
{
return $this->warnings;
}
protected function build(): array
{
$page = clone $this->page;
$isDraft = boolval($this->page->draft);
$templates = $this->pageRepo->getTemplates(10);
$draftsEnabled = auth()->check();
$isDraftRevision = false;
$this->warnings = [];
$editActivity = new PageEditActivity($page);
if ($editActivity->hasActiveEditing()) {
$this->warnings[] = $editActivity->activeEditingMessage();
}
// Check for a current draft version for this user
$userDraft = $this->pageRepo->getUserDraft($page);
if ($userDraft !== null) {
$page->forceFill($userDraft->only(['name', 'html', 'markdown']));
$isDraftRevision = true;
$this->warnings[] = $editActivity->getEditingActiveDraftMessage($userDraft);
}
$editorType = $this->getEditorType($page);
$this->updateContentForEditor($page, $editorType);
return [
'page' => $page,
'book' => $page->book,
'isDraft' => $isDraft,
'isDraftRevision' => $isDraftRevision,
'draftsEnabled' => $draftsEnabled,
'templates' => $templates,
'editor' => $editorType,
];
}
protected function updateContentForEditor(Page $page, string $editorType): void
{
$isHtml = !empty($page->html) && empty($page->markdown);
// HTML to markdown-clean conversion
if ($editorType === 'markdown' && $isHtml && $this->requestedEditor === 'markdown-clean') {
$page->markdown = (new HtmlToMarkdown($page->html))->convert();
}
// Markdown to HTML conversion if we don't have HTML
if ($editorType === 'wysiwyg' && !$isHtml) {
$page->html = (new MarkdownToHtml($page->markdown))->convert();
}
}
/**
* Get the type of editor to show for editing the given page.
* Defaults based upon the current content of the page otherwise will fall back
* to system default but will take a requested type (if provided) if permissions allow.
*/
protected function getEditorType(Page $page): string
{
$editorType = $page->editor ?: self::getSystemDefaultEditor();
// Use requested editor if valid and if we have permission
$requestedType = explode('-', $this->requestedEditor)[0];
if (($requestedType === 'markdown' || $requestedType === 'wysiwyg') && userCan('editor-change')) {
$editorType = $requestedType;
}
return $editorType;
}
/**
* Get the configured system default editor.
*/
public static function getSystemDefaultEditor(): string
{
return setting('app-editor') === 'markdown' ? 'markdown' : 'wysiwyg';
}
}

View File

@ -87,14 +87,33 @@ class AttachmentApiController extends ApiController
'markdown' => $attachment->markdownLink(), 'markdown' => $attachment->markdownLink(),
]); ]);
if (!$attachment->external) { // Simply return a JSON response of the attachment for link-based attachments
$attachmentContents = $this->attachmentService->getAttachmentFromStorage($attachment); if ($attachment->external) {
$attachment->setAttribute('content', base64_encode($attachmentContents));
} else {
$attachment->setAttribute('content', $attachment->path); $attachment->setAttribute('content', $attachment->path);
return response()->json($attachment);
} }
return response()->json($attachment); // Build and split our core JSON, at point of content.
$splitter = 'CONTENT_SPLIT_LOCATION_' . time() . '_' . rand(1, 40000);
$attachment->setAttribute('content', $splitter);
$json = $attachment->toJson();
$jsonParts = explode($splitter, $json);
// Get a stream for the file data from storage
$stream = $this->attachmentService->streamAttachmentFromStorage($attachment);
return response()->stream(function () use ($jsonParts, $stream) {
// Output the pre-content JSON data
echo $jsonParts[0];
// Stream out our attachment data as base64 content
stream_filter_append($stream, 'convert.base64-encode', STREAM_FILTER_READ);
fpassthru($stream);
fclose($stream);
// Output our post-content JSON data
echo $jsonParts[1];
}, 200, ['Content-Type' => 'application/json']);
} }
/** /**

View File

@ -11,21 +11,20 @@ use Illuminate\Validation\ValidationException;
class BookshelfApiController extends ApiController class BookshelfApiController extends ApiController
{ {
/** protected BookshelfRepo $bookshelfRepo;
* @var BookshelfRepo
*/
protected $bookshelfRepo;
protected $rules = [ protected $rules = [
'create' => [ 'create' => [
'name' => ['required', 'string', 'max:255'], 'name' => ['required', 'string', 'max:255'],
'description' => ['string', 'max:1000'], 'description' => ['string', 'max:1000'],
'books' => ['array'], 'books' => ['array'],
'tags' => ['array'],
], ],
'update' => [ 'update' => [
'name' => ['string', 'min:1', 'max:255'], 'name' => ['string', 'min:1', 'max:255'],
'description' => ['string', 'max:1000'], 'description' => ['string', 'max:1000'],
'books' => ['array'], 'books' => ['array'],
'tags' => ['array'],
], ],
]; ];

View File

@ -12,7 +12,7 @@ use Illuminate\Http\Request;
class PageApiController extends ApiController class PageApiController extends ApiController
{ {
protected $pageRepo; protected PageRepo $pageRepo;
protected $rules = [ protected $rules = [
'create' => [ 'create' => [
@ -24,8 +24,8 @@ class PageApiController extends ApiController
'tags' => ['array'], 'tags' => ['array'],
], ],
'update' => [ 'update' => [
'book_id' => ['required', 'integer'], 'book_id' => ['integer'],
'chapter_id' => ['required', 'integer'], 'chapter_id' => ['integer'],
'name' => ['string', 'min:1', 'max:255'], 'name' => ['string', 'min:1', 'max:255'],
'html' => ['string'], 'html' => ['string'],
'markdown' => ['string'], 'markdown' => ['string'],
@ -103,6 +103,8 @@ class PageApiController extends ApiController
*/ */
public function update(Request $request, string $id) public function update(Request $request, string $id)
{ {
$requestData = $this->validate($request, $this->rules['update']);
$page = $this->pageRepo->getById($id, []); $page = $this->pageRepo->getById($id, []);
$this->checkOwnablePermission('page-update', $page); $this->checkOwnablePermission('page-update', $page);
@ -127,7 +129,7 @@ class PageApiController extends ApiController
} }
} }
$updatedPage = $this->pageRepo->update($page, $request->all()); $updatedPage = $this->pageRepo->update($page, $requestData);
return response()->json($updatedPage->forJsonDisplay()); return response()->json($updatedPage->forJsonDisplay());
} }

View File

@ -0,0 +1,90 @@
<?php
namespace BookStack\Http\Controllers\Api;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\BookChild;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Deletion;
use BookStack\Entities\Repos\DeletionRepo;
use Closure;
use Illuminate\Database\Eloquent\Builder;
class RecycleBinApiController extends ApiController
{
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->checkPermission('settings-manage');
$this->checkPermission('restrictions-manage-all');
return $next($request);
});
}
/**
* Get a top-level listing of the items in the recycle bin.
* The "deletable" property will reflect the main item deleted.
* For books and chapters, counts of child pages/chapters will
* be loaded within this "deletable" data.
* For chapters & pages, the parent item will be loaded within this "deletable" data.
* Requires permission to manage both system settings and permissions.
*/
public function list()
{
return $this->apiListingResponse(Deletion::query()->with('deletable'), [
'id',
'deleted_by',
'created_at',
'updated_at',
'deletable_type',
'deletable_id',
], [Closure::fromCallable([$this, 'listFormatter'])]);
}
/**
* Restore a single deletion from the recycle bin.
* Requires permission to manage both system settings and permissions.
*/
public function restore(DeletionRepo $deletionRepo, string $deletionId)
{
$restoreCount = $deletionRepo->restore(intval($deletionId));
return response()->json(['restore_count' => $restoreCount]);
}
/**
* Remove a single deletion from the recycle bin.
* Use this endpoint carefully as it will entirely remove the underlying deleted items from the system.
* Requires permission to manage both system settings and permissions.
*/
public function destroy(DeletionRepo $deletionRepo, string $deletionId)
{
$deleteCount = $deletionRepo->destroy(intval($deletionId));
return response()->json(['delete_count' => $deleteCount]);
}
/**
* Load some related details for the deletion listing.
*/
protected function listFormatter(Deletion $deletion)
{
$deletable = $deletion->deletable;
$withTrashedQuery = fn (Builder $query) => $query->withTrashed();
if ($deletable instanceof BookChild) {
$parent = $deletable->getParent();
$parent->setAttribute('type', $parent->getType());
$deletable->setRelation('parent', $parent);
}
if ($deletable instanceof Book || $deletable instanceof Chapter) {
$countsToLoad = ['pages' => $withTrashedQuery];
if ($deletable instanceof Book) {
$countsToLoad['chapters'] = $withTrashedQuery;
}
$deletable->loadCount($countsToLoad);
}
}
}

View File

@ -15,8 +15,8 @@ use Illuminate\Validation\ValidationException;
class AttachmentController extends Controller class AttachmentController extends Controller
{ {
protected $attachmentService; protected AttachmentService $attachmentService;
protected $pageRepo; protected PageRepo $pageRepo;
/** /**
* AttachmentController constructor. * AttachmentController constructor.
@ -230,13 +230,13 @@ class AttachmentController extends Controller
} }
$fileName = $attachment->getFileName(); $fileName = $attachment->getFileName();
$attachmentContents = $this->attachmentService->getAttachmentFromStorage($attachment); $attachmentStream = $this->attachmentService->streamAttachmentFromStorage($attachment);
if ($request->get('open') === 'true') { if ($request->get('open') === 'true') {
return $this->inlineDownloadResponse($attachmentContents, $fileName); return $this->streamedInlineDownloadResponse($attachmentStream, $fileName);
} }
return $this->downloadResponse($attachmentContents, $fileName); return $this->streamedDownloadResponse($attachmentStream, $fileName);
} }
/** /**

View File

@ -12,6 +12,7 @@ use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
use Symfony\Component\HttpFoundation\StreamedResponse;
abstract class Controller extends BaseController abstract class Controller extends BaseController
{ {
@ -115,7 +116,28 @@ abstract class Controller extends BaseController
{ {
return response()->make($content, 200, [ return response()->make($content, 200, [
'Content-Type' => 'application/octet-stream', 'Content-Type' => 'application/octet-stream',
'Content-Disposition' => 'attachment; filename="' . $fileName . '"', 'Content-Disposition' => 'attachment; filename="' . str_replace('"', '', $fileName) . '"',
'X-Content-Type-Options' => 'nosniff',
]);
}
/**
* Create a response that forces a download, from a given stream of content.
*/
protected function streamedDownloadResponse($stream, string $fileName): StreamedResponse
{
return response()->stream(function () use ($stream) {
// End & flush the output buffer otherwise we still seem to use memory.
// Ignore in testing since output buffers are used to gather a response.
if (!app()->runningUnitTests()) {
ob_end_clean();
}
fpassthru($stream);
fclose($stream);
}, 200, [
'Content-Type' => 'application/octet-stream',
'Content-Disposition' => 'attachment; filename="' . str_replace('"', '', $fileName) . '"',
'X-Content-Type-Options' => 'nosniff', 'X-Content-Type-Options' => 'nosniff',
]); ]);
} }
@ -130,7 +152,28 @@ abstract class Controller extends BaseController
return response()->make($content, 200, [ return response()->make($content, 200, [
'Content-Type' => $mime, 'Content-Type' => $mime,
'Content-Disposition' => 'inline; filename="' . $fileName . '"', 'Content-Disposition' => 'inline; filename="' . str_replace('"', '', $fileName) . '"',
'X-Content-Type-Options' => 'nosniff',
]);
}
/**
* 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,
* for a given content stream.
*/
protected function streamedInlineDownloadResponse($stream, string $fileName): StreamedResponse
{
$sniffContent = fread($stream, 1000);
$mime = (new WebSafeMimeSniffer())->sniff($sniffContent);
return response()->stream(function () use ($sniffContent, $stream) {
echo $sniffContent;
fpassthru($stream);
fclose($stream);
}, 200, [
'Content-Type' => $mime,
'Content-Disposition' => 'inline; filename="' . str_replace('"', '', $fileName) . '"',
'X-Content-Type-Options' => 'nosniff', 'X-Content-Type-Options' => 'nosniff',
]); ]);
} }

View File

@ -10,6 +10,7 @@ use BookStack\Entities\Tools\Cloner;
use BookStack\Entities\Tools\NextPreviousContentLocator; use BookStack\Entities\Tools\NextPreviousContentLocator;
use BookStack\Entities\Tools\PageContent; use BookStack\Entities\Tools\PageContent;
use BookStack\Entities\Tools\PageEditActivity; use BookStack\Entities\Tools\PageEditActivity;
use BookStack\Entities\Tools\PageEditorData;
use BookStack\Entities\Tools\PermissionsUpdater; use BookStack\Entities\Tools\PermissionsUpdater;
use BookStack\Exceptions\NotFoundException; use BookStack\Exceptions\NotFoundException;
use BookStack\Exceptions\PermissionsException; use BookStack\Exceptions\PermissionsException;
@ -21,7 +22,7 @@ use Throwable;
class PageController extends Controller class PageController extends Controller
{ {
protected $pageRepo; protected PageRepo $pageRepo;
/** /**
* PageController constructor. * PageController constructor.
@ -82,22 +83,15 @@ class PageController extends Controller
* *
* @throws NotFoundException * @throws NotFoundException
*/ */
public function editDraft(string $bookSlug, int $pageId) public function editDraft(Request $request, string $bookSlug, int $pageId)
{ {
$draft = $this->pageRepo->getById($pageId); $draft = $this->pageRepo->getById($pageId);
$this->checkOwnablePermission('page-create', $draft->getParent()); $this->checkOwnablePermission('page-create', $draft->getParent());
$editorData = new PageEditorData($draft, $this->pageRepo, $request->query('editor', ''));
$this->setPageTitle(trans('entities.pages_edit_draft')); $this->setPageTitle(trans('entities.pages_edit_draft'));
$draftsEnabled = $this->isSignedIn(); return view('pages.edit', $editorData->getViewData());
$templates = $this->pageRepo->getTemplates(10);
return view('pages.edit', [
'page' => $draft,
'book' => $draft->book,
'isDraft' => true,
'draftsEnabled' => $draftsEnabled,
'templates' => $templates,
]);
} }
/** /**
@ -188,43 +182,19 @@ class PageController extends Controller
* *
* @throws NotFoundException * @throws NotFoundException
*/ */
public function edit(string $bookSlug, string $pageSlug) public function edit(Request $request, string $bookSlug, string $pageSlug)
{ {
$page = $this->pageRepo->getBySlug($bookSlug, $pageSlug); $page = $this->pageRepo->getBySlug($bookSlug, $pageSlug);
$this->checkOwnablePermission('page-update', $page); $this->checkOwnablePermission('page-update', $page);
$page->isDraft = false; $editorData = new PageEditorData($page, $this->pageRepo, $request->query('editor', ''));
$editActivity = new PageEditActivity($page); if ($editorData->getWarnings()) {
$this->showWarningNotification(implode("\n", $editorData->getWarnings()));
// Check for active editing
$warnings = [];
if ($editActivity->hasActiveEditing()) {
$warnings[] = $editActivity->activeEditingMessage();
} }
// Check for a current draft version for this user
$userDraft = $this->pageRepo->getUserDraft($page);
if ($userDraft !== null) {
$page->forceFill($userDraft->only(['name', 'html', 'markdown']));
$page->isDraft = true;
$warnings[] = $editActivity->getEditingActiveDraftMessage($userDraft);
}
if (count($warnings) > 0) {
$this->showWarningNotification(implode("\n", $warnings));
}
$templates = $this->pageRepo->getTemplates(10);
$draftsEnabled = $this->isSignedIn();
$this->setPageTitle(trans('entities.pages_editing_named', ['pageName' => $page->getShortName()])); $this->setPageTitle(trans('entities.pages_editing_named', ['pageName' => $page->getShortName()]));
return view('pages.edit', [ return view('pages.edit', $editorData->getViewData());
'page' => $page,
'book' => $page->book,
'current' => $page,
'draftsEnabled' => $draftsEnabled,
'templates' => $templates,
]);
} }
/** /**

View File

@ -5,6 +5,7 @@ namespace BookStack\Http\Controllers;
use BookStack\Actions\ActivityType; use BookStack\Actions\ActivityType;
use BookStack\Entities\Models\Deletion; use BookStack\Entities\Models\Deletion;
use BookStack\Entities\Models\Entity; use BookStack\Entities\Models\Entity;
use BookStack\Entities\Repos\DeletionRepo;
use BookStack\Entities\Tools\TrashCan; use BookStack\Entities\Tools\TrashCan;
class RecycleBinController extends Controller class RecycleBinController extends Controller
@ -73,12 +74,9 @@ class RecycleBinController extends Controller
* *
* @throws \Exception * @throws \Exception
*/ */
public function restore(string $id) public function restore(DeletionRepo $deletionRepo, string $id)
{ {
/** @var Deletion $deletion */ $restoreCount = $deletionRepo->restore((int) $id);
$deletion = Deletion::query()->findOrFail($id);
$this->logActivity(ActivityType::RECYCLE_BIN_RESTORE, $deletion);
$restoreCount = (new TrashCan())->restoreFromDeletion($deletion);
$this->showSuccessNotification(trans('settings.recycle_bin_restore_notification', ['count' => $restoreCount])); $this->showSuccessNotification(trans('settings.recycle_bin_restore_notification', ['count' => $restoreCount]));
@ -103,12 +101,9 @@ class RecycleBinController extends Controller
* *
* @throws \Exception * @throws \Exception
*/ */
public function destroy(string $id) public function destroy(DeletionRepo $deletionRepo, string $id)
{ {
/** @var Deletion $deletion */ $deleteCount = $deletionRepo->destroy((int) $id);
$deletion = Deletion::query()->findOrFail($id);
$this->logActivity(ActivityType::RECYCLE_BIN_DESTROY, $deletion);
$deleteCount = (new TrashCan())->destroyFromDeletion($deletion);
$this->showSuccessNotification(trans('settings.recycle_bin_destroy_notification', ['count' => $deleteCount])); $this->showSuccessNotification(trans('settings.recycle_bin_destroy_notification', ['count' => $deleteCount]));

View File

@ -19,7 +19,7 @@ class SettingController extends Controller
} }
/** /**
* Handle requests to the settings index path * Handle requests to the settings index path.
*/ */
public function index() public function index()
{ {

View File

@ -8,20 +8,36 @@ class Request extends LaravelRequest
{ {
/** /**
* Override the default request methods to get the scheme and host * Override the default request methods to get the scheme and host
* to set the custom APP_URL, if set. * to directly use the custom APP_URL, if set.
* *
* @return \Illuminate\Config\Repository|mixed|string * @return string
*/ */
public function getSchemeAndHttpHost() public function getSchemeAndHttpHost()
{ {
$base = config('app.url', null); $appUrl = config('app.url', null);
if ($base) { if ($appUrl) {
$base = trim($base, '/'); return implode('/', array_slice(explode('/', $appUrl), 0, 3));
} else {
$base = $this->getScheme() . '://' . $this->getHttpHost();
} }
return $base; return parent::getSchemeAndHttpHost();
}
/**
* Override the default request methods to get the base URL
* to directly use the custom APP_URL, if set.
* The base URL never ends with a / but should start with one if not empty.
*
* @return string
*/
public function getBaseUrl()
{
$appUrl = config('app.url', null);
if ($appUrl) {
return '/' . rtrim(implode('/', array_slice(explode('/', $appUrl), 3)), '/');
}
return parent::getBaseUrl();
} }
} }

View File

@ -51,12 +51,12 @@ class AppServiceProvider extends ServiceProvider
// Allow longer string lengths after upgrade to utf8mb4 // Allow longer string lengths after upgrade to utf8mb4
Schema::defaultStringLength(191); Schema::defaultStringLength(191);
// Set morph-map due to namespace changes // Set morph-map for our relations to friendlier aliases
Relation::morphMap([ Relation::enforceMorphMap([
'BookStack\\Bookshelf' => Bookshelf::class, 'bookshelf' => Bookshelf::class,
'BookStack\\Book' => Book::class, 'book' => Book::class,
'BookStack\\Chapter' => Chapter::class, 'chapter' => Chapter::class,
'BookStack\\Page' => Page::class, 'page' => Page::class,
]); ]);
// View Composers // View Composers

View File

@ -14,7 +14,7 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
class AttachmentService class AttachmentService
{ {
protected $fileSystem; protected FilesystemManager $fileSystem;
/** /**
* AttachmentService constructor. * AttachmentService constructor.
@ -73,6 +73,18 @@ class AttachmentService
return $this->getStorageDisk()->get($this->adjustPathForStorageDisk($attachment->path)); return $this->getStorageDisk()->get($this->adjustPathForStorageDisk($attachment->path));
} }
/**
* Stream an attachment from storage.
*
* @throws FileNotFoundException
*
* @return resource|null
*/
public function streamAttachmentFromStorage(Attachment $attachment)
{
return $this->getStorageDisk()->readStream($this->adjustPathForStorageDisk($attachment->path));
}
/** /**
* Store a new attachment upon user upload. * Store a new attachment upon user upload.
* *
@ -211,8 +223,6 @@ class AttachmentService
*/ */
protected function putFileInStorage(UploadedFile $uploadedFile): string protected function putFileInStorage(UploadedFile $uploadedFile): string
{ {
$attachmentData = file_get_contents($uploadedFile->getRealPath());
$storage = $this->getStorageDisk(); $storage = $this->getStorageDisk();
$basePath = 'uploads/files/' . date('Y-m-M') . '/'; $basePath = 'uploads/files/' . date('Y-m-M') . '/';
@ -221,10 +231,11 @@ class AttachmentService
$uploadFileName = Str::random(3) . $uploadFileName; $uploadFileName = Str::random(3) . $uploadFileName;
} }
$attachmentStream = fopen($uploadedFile->getRealPath(), 'r');
$attachmentPath = $basePath . $uploadFileName; $attachmentPath = $basePath . $uploadFileName;
try { try {
$storage->put($this->adjustPathForStorageDisk($attachmentPath), $attachmentData); $storage->writeStream($this->adjustPathForStorageDisk($attachmentPath), $attachmentStream);
} catch (Exception $e) { } catch (Exception $e) {
Log::error('Error when attempting file upload:' . $e->getMessage()); Log::error('Error when attempting file upload:' . $e->getMessage());

401
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,62 @@
<?php
use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class AddEditorChangeFieldAndPermission extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
// Add the new 'editor' column to the pages table
Schema::table('pages', function (Blueprint $table) {
$table->string('editor', 50)->default('');
});
// Populate the new 'editor' column
// We set it to 'markdown' for pages currently with markdown content
DB::table('pages')->where('markdown', '!=', '')->update(['editor' => 'markdown']);
// We set it to 'wysiwyg' where we have HTML but no markdown
DB::table('pages')->where('markdown', '=', '')
->where('html', '!=', '')
->update(['editor' => 'wysiwyg']);
// Give the admin user permission to change the editor
$adminRoleId = DB::table('roles')->where('system_name', '=', 'admin')->first()->id;
$permissionId = DB::table('role_permissions')->insertGetId([
'name' => 'editor-change',
'display_name' => 'Change page editor',
'created_at' => Carbon::now()->toDateTimeString(),
'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
'role_id' => $adminRoleId,
'permission_id' => $permissionId,
]);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
// Drop the new column from the pages table
Schema::table('pages', function (Blueprint $table) {
$table->dropColumn('editor');
});
// Remove traces of the role permission
DB::table('role_permissions')->where('name', '=', 'editor-change')->delete();
}
}

View File

@ -0,0 +1,64 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
class UpdatePolymorphicTypes extends Migration
{
/**
* Mapping of old polymorphic types to new simpler values.
*/
protected $changeMap = [
'BookStack\\Bookshelf' => 'bookshelf',
'BookStack\\Book' => 'book',
'BookStack\\Chapter' => 'chapter',
'BookStack\\Page' => 'page',
];
/**
* Mapping of tables and columns that contain polymorphic types.
*/
protected $columnsByTable = [
'activities' => 'entity_type',
'comments' => 'entity_type',
'deletions' => 'deletable_type',
'entity_permissions' => 'restrictable_type',
'favourites' => 'favouritable_type',
'joint_permissions' => 'entity_type',
'search_terms' => 'entity_type',
'tags' => 'entity_type',
'views' => 'viewable_type',
];
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
foreach ($this->columnsByTable as $table => $column) {
foreach ($this->changeMap as $oldVal => $newVal) {
DB::table($table)
->where([$column => $oldVal])
->update([$column => $newVal]);
}
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
foreach ($this->columnsByTable as $table => $column) {
foreach ($this->changeMap as $oldVal => $newVal) {
DB::table($table)
->where([$column => $newVal])
->update([$column => $oldVal]);
}
}
}
}

View File

@ -0,0 +1,3 @@
{
"delete_count": 2
}

View File

@ -0,0 +1,64 @@
{
"data": [
{
"id": 18,
"deleted_by": 1,
"created_at": "2022-04-20T12:57:46.000000Z",
"updated_at": "2022-04-20T12:57:46.000000Z",
"deletable_type": "page",
"deletable_id": 2582,
"deletable": {
"id": 2582,
"book_id": 25,
"chapter_id": 0,
"name": "A Wonderful Page",
"slug": "a-wonderful-page",
"priority": 9,
"created_at": "2022-02-08T00:44:45.000000Z",
"updated_at": "2022-04-20T12:57:46.000000Z",
"created_by": 1,
"updated_by": 1,
"draft": false,
"revision_count": 1,
"template": false,
"owned_by": 1,
"editor": "wysiwyg",
"book_slug": "a-great-book",
"parent": {
"id": 25,
"name": "A Great Book",
"slug": "a-great-book",
"description": "",
"created_at": "2022-01-24T16:14:28.000000Z",
"updated_at": "2022-03-06T15:14:50.000000Z",
"created_by": 1,
"updated_by": 1,
"owned_by": 1,
"type": "book"
}
}
},
{
"id": 19,
"deleted_by": 1,
"created_at": "2022-04-25T16:07:46.000000Z",
"updated_at": "2022-04-25T16:07:46.000000Z",
"deletable_type": "book",
"deletable_id": 13,
"deletable": {
"id": 13,
"name": "A Big Book!",
"slug": "a-big-book",
"description": "This is a very large book with loads of cool stuff in it!",
"created_at": "2021-11-08T11:26:43.000000Z",
"updated_at": "2022-04-25T16:07:47.000000Z",
"created_by": 27,
"updated_by": 1,
"owned_by": 1,
"pages_count": 208,
"chapters_count": 50
}
}
],
"total": 2
}

View File

@ -0,0 +1,3 @@
{
"restore_count": 2
}

32
dev/build/esbuild.js Normal file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env node
const esbuild = require('esbuild');
const fs = require('fs');
const path = require('path');
// Check if we're building for production
// (Set via passing `production` as first argument)
const isProd = process.argv[2] === 'production';
// Gather our input files
const jsInDir = path.join(__dirname, '../../resources/js');
const jsInDirFiles = fs.readdirSync(jsInDir, 'utf8');
const entryFiles = jsInDirFiles
.filter(f => f.endsWith('.js') || f.endsWith('.mjs'))
.map(f => path.join(jsInDir, f));
// Locate our output directory
const outDir = path.join(__dirname, '../../public/dist');
// Build via esbuild
esbuild.build({
bundle: true,
entryPoints: entryFiles,
outdir: outDir,
sourcemap: true,
target: 'es2020',
mainFields: ['module', 'main'],
format: 'esm',
minify: isProd,
logLevel: "info",
}).catch(() => process.exit(1));

360
package-lock.json generated
View File

@ -14,17 +14,17 @@
}, },
"devDependencies": { "devDependencies": {
"chokidar-cli": "^3.0", "chokidar-cli": "^3.0",
"esbuild": "0.14.27", "esbuild": "0.14.36",
"livereload": "^0.9.3", "livereload": "^0.9.3",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"punycode": "^2.1.1", "punycode": "^2.1.1",
"sass": "^1.49.9" "sass": "^1.50.0"
} }
}, },
"node_modules/ansi-regex": { "node_modules/ansi-regex": {
"version": "4.1.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
@ -341,9 +341,9 @@
} }
}, },
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.36.tgz",
"integrity": "sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==", "integrity": "sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==",
"dev": true, "dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"bin": { "bin": {
@ -353,32 +353,32 @@
"node": ">=12" "node": ">=12"
}, },
"optionalDependencies": { "optionalDependencies": {
"esbuild-android-64": "0.14.27", "esbuild-android-64": "0.14.36",
"esbuild-android-arm64": "0.14.27", "esbuild-android-arm64": "0.14.36",
"esbuild-darwin-64": "0.14.27", "esbuild-darwin-64": "0.14.36",
"esbuild-darwin-arm64": "0.14.27", "esbuild-darwin-arm64": "0.14.36",
"esbuild-freebsd-64": "0.14.27", "esbuild-freebsd-64": "0.14.36",
"esbuild-freebsd-arm64": "0.14.27", "esbuild-freebsd-arm64": "0.14.36",
"esbuild-linux-32": "0.14.27", "esbuild-linux-32": "0.14.36",
"esbuild-linux-64": "0.14.27", "esbuild-linux-64": "0.14.36",
"esbuild-linux-arm": "0.14.27", "esbuild-linux-arm": "0.14.36",
"esbuild-linux-arm64": "0.14.27", "esbuild-linux-arm64": "0.14.36",
"esbuild-linux-mips64le": "0.14.27", "esbuild-linux-mips64le": "0.14.36",
"esbuild-linux-ppc64le": "0.14.27", "esbuild-linux-ppc64le": "0.14.36",
"esbuild-linux-riscv64": "0.14.27", "esbuild-linux-riscv64": "0.14.36",
"esbuild-linux-s390x": "0.14.27", "esbuild-linux-s390x": "0.14.36",
"esbuild-netbsd-64": "0.14.27", "esbuild-netbsd-64": "0.14.36",
"esbuild-openbsd-64": "0.14.27", "esbuild-openbsd-64": "0.14.36",
"esbuild-sunos-64": "0.14.27", "esbuild-sunos-64": "0.14.36",
"esbuild-windows-32": "0.14.27", "esbuild-windows-32": "0.14.36",
"esbuild-windows-64": "0.14.27", "esbuild-windows-64": "0.14.36",
"esbuild-windows-arm64": "0.14.27" "esbuild-windows-arm64": "0.14.36"
} }
}, },
"node_modules/esbuild-android-64": { "node_modules/esbuild-android-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.36.tgz",
"integrity": "sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==", "integrity": "sha512-jwpBhF1jmo0tVCYC/ORzVN+hyVcNZUWuozGcLHfod0RJCedTDTvR4nwlTXdx1gtncDqjk33itjO+27OZHbiavw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -392,9 +392,9 @@
} }
}, },
"node_modules/esbuild-android-arm64": { "node_modules/esbuild-android-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.36.tgz",
"integrity": "sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==", "integrity": "sha512-/hYkyFe7x7Yapmfv4X/tBmyKnggUmdQmlvZ8ZlBnV4+PjisrEhAvC3yWpURuD9XoB8Wa1d5dGkTsF53pIvpjsg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -408,9 +408,9 @@
} }
}, },
"node_modules/esbuild-darwin-64": { "node_modules/esbuild-darwin-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.36.tgz",
"integrity": "sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==", "integrity": "sha512-kkl6qmV0dTpyIMKagluzYqlc1vO0ecgpviK/7jwPbRDEv5fejRTaBBEE2KxEQbTHcLhiiDbhG7d5UybZWo/1zQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -424,9 +424,9 @@
} }
}, },
"node_modules/esbuild-darwin-arm64": { "node_modules/esbuild-darwin-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.36.tgz",
"integrity": "sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==", "integrity": "sha512-q8fY4r2Sx6P0Pr3VUm//eFYKVk07C5MHcEinU1BjyFnuYz4IxR/03uBbDwluR6ILIHnZTE7AkTUWIdidRi1Jjw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -440,9 +440,9 @@
} }
}, },
"node_modules/esbuild-freebsd-64": { "node_modules/esbuild-freebsd-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.36.tgz",
"integrity": "sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==", "integrity": "sha512-Hn8AYuxXXRptybPqoMkga4HRFE7/XmhtlQjXFHoAIhKUPPMeJH35GYEUWGbjteai9FLFvBAjEAlwEtSGxnqWww==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -456,9 +456,9 @@
} }
}, },
"node_modules/esbuild-freebsd-arm64": { "node_modules/esbuild-freebsd-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.36.tgz",
"integrity": "sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==", "integrity": "sha512-S3C0attylLLRiCcHiJd036eDEMOY32+h8P+jJ3kTcfhJANNjP0TNBNL30TZmEdOSx/820HJFgRrqpNAvTbjnDA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -472,9 +472,9 @@
} }
}, },
"node_modules/esbuild-linux-32": { "node_modules/esbuild-linux-32": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.36.tgz",
"integrity": "sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==", "integrity": "sha512-Eh9OkyTrEZn9WGO4xkI3OPPpUX7p/3QYvdG0lL4rfr73Ap2HAr6D9lP59VMF64Ex01LhHSXwIsFG/8AQjh6eNw==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -488,9 +488,9 @@
} }
}, },
"node_modules/esbuild-linux-64": { "node_modules/esbuild-linux-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.36.tgz",
"integrity": "sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==", "integrity": "sha512-vFVFS5ve7PuwlfgoWNyRccGDi2QTNkQo/2k5U5ttVD0jRFaMlc8UQee708fOZA6zTCDy5RWsT5MJw3sl2X6KDg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -504,9 +504,9 @@
} }
}, },
"node_modules/esbuild-linux-arm": { "node_modules/esbuild-linux-arm": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.36.tgz",
"integrity": "sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==", "integrity": "sha512-NhgU4n+NCsYgt7Hy61PCquEz5aevI6VjQvxwBxtxrooXsxt5b2xtOUXYZe04JxqQo+XZk3d1gcr7pbV9MAQ/Lg==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -520,9 +520,9 @@
} }
}, },
"node_modules/esbuild-linux-arm64": { "node_modules/esbuild-linux-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.36.tgz",
"integrity": "sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==", "integrity": "sha512-24Vq1M7FdpSmaTYuu1w0Hdhiqkbto1I5Pjyi+4Cdw5fJKGlwQuw+hWynTcRI/cOZxBcBpP21gND7W27gHAiftw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -536,9 +536,9 @@
} }
}, },
"node_modules/esbuild-linux-mips64le": { "node_modules/esbuild-linux-mips64le": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.36.tgz",
"integrity": "sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==", "integrity": "sha512-hZUeTXvppJN+5rEz2EjsOFM9F1bZt7/d2FUM1lmQo//rXh1RTFYzhC0txn7WV0/jCC7SvrGRaRz0NMsRPf8SIA==",
"cpu": [ "cpu": [
"mips64el" "mips64el"
], ],
@ -552,9 +552,9 @@
} }
}, },
"node_modules/esbuild-linux-ppc64le": { "node_modules/esbuild-linux-ppc64le": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.36.tgz",
"integrity": "sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==", "integrity": "sha512-1Bg3QgzZjO+QtPhP9VeIBhAduHEc2kzU43MzBnMwpLSZ890azr4/A9Dganun8nsqD/1TBcqhId0z4mFDO8FAvg==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@ -568,9 +568,9 @@
} }
}, },
"node_modules/esbuild-linux-riscv64": { "node_modules/esbuild-linux-riscv64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.36.tgz",
"integrity": "sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==", "integrity": "sha512-dOE5pt3cOdqEhaufDRzNCHf5BSwxgygVak9UR7PH7KPVHwSTDAZHDoEjblxLqjJYpc5XaU9+gKJ9F8mp9r5I4A==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@ -584,9 +584,9 @@
} }
}, },
"node_modules/esbuild-linux-s390x": { "node_modules/esbuild-linux-s390x": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.36.tgz",
"integrity": "sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==", "integrity": "sha512-g4FMdh//BBGTfVHjF6MO7Cz8gqRoDPzXWxRvWkJoGroKA18G9m0wddvPbEqcQf5Tbt2vSc1CIgag7cXwTmoTXg==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@ -600,9 +600,9 @@
} }
}, },
"node_modules/esbuild-netbsd-64": { "node_modules/esbuild-netbsd-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.36.tgz",
"integrity": "sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==", "integrity": "sha512-UB2bVImxkWk4vjnP62ehFNZ73lQY1xcnL5ZNYF3x0AG+j8HgdkNF05v67YJdCIuUJpBuTyCK8LORCYo9onSW+A==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -616,9 +616,9 @@
} }
}, },
"node_modules/esbuild-openbsd-64": { "node_modules/esbuild-openbsd-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.36.tgz",
"integrity": "sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==", "integrity": "sha512-NvGB2Chf8GxuleXRGk8e9zD3aSdRO5kLt9coTQbCg7WMGXeX471sBgh4kSg8pjx0yTXRt0MlrUDnjVYnetyivg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -632,9 +632,9 @@
} }
}, },
"node_modules/esbuild-sunos-64": { "node_modules/esbuild-sunos-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.36.tgz",
"integrity": "sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==", "integrity": "sha512-VkUZS5ftTSjhRjuRLp+v78auMO3PZBXu6xl4ajomGenEm2/rGuWlhFSjB7YbBNErOchj51Jb2OK8lKAo8qdmsQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -648,9 +648,9 @@
} }
}, },
"node_modules/esbuild-windows-32": { "node_modules/esbuild-windows-32": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.36.tgz",
"integrity": "sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==", "integrity": "sha512-bIar+A6hdytJjZrDxfMBUSEHHLfx3ynoEZXx/39nxy86pX/w249WZm8Bm0dtOAByAf4Z6qV0LsnTIJHiIqbw0w==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -664,9 +664,9 @@
} }
}, },
"node_modules/esbuild-windows-64": { "node_modules/esbuild-windows-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.36.tgz",
"integrity": "sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==", "integrity": "sha512-+p4MuRZekVChAeueT1Y9LGkxrT5x7YYJxYE8ZOTcEfeUUN43vktSn6hUNsvxzzATrSgq5QqRdllkVBxWZg7KqQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -680,9 +680,9 @@
} }
}, },
"node_modules/esbuild-windows-arm64": { "node_modules/esbuild-windows-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.36.tgz",
"integrity": "sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==", "integrity": "sha512-fBB4WlDqV1m18EF/aheGYQkQZHfPHiHJSBYzXIo8yKehek+0BtBwo/4PNwKGJ5T0YK0oc8pBKjgwPbzSrPLb+Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1520,9 +1520,9 @@
} }
}, },
"node_modules/sass": { "node_modules/sass": {
"version": "1.49.9", "version": "1.50.0",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.0.tgz",
"integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", "integrity": "sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"chokidar": ">=3.0.0 <4.0.0", "chokidar": ">=3.0.0 <4.0.0",
@ -1886,9 +1886,9 @@
}, },
"dependencies": { "dependencies": {
"ansi-regex": { "ansi-regex": {
"version": "4.1.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"dev": true "dev": true
}, },
"ansi-styles": { "ansi-styles": {
@ -2146,170 +2146,170 @@
} }
}, },
"esbuild": { "esbuild": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.36.tgz",
"integrity": "sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==", "integrity": "sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==",
"dev": true, "dev": true,
"requires": { "requires": {
"esbuild-android-64": "0.14.27", "esbuild-android-64": "0.14.36",
"esbuild-android-arm64": "0.14.27", "esbuild-android-arm64": "0.14.36",
"esbuild-darwin-64": "0.14.27", "esbuild-darwin-64": "0.14.36",
"esbuild-darwin-arm64": "0.14.27", "esbuild-darwin-arm64": "0.14.36",
"esbuild-freebsd-64": "0.14.27", "esbuild-freebsd-64": "0.14.36",
"esbuild-freebsd-arm64": "0.14.27", "esbuild-freebsd-arm64": "0.14.36",
"esbuild-linux-32": "0.14.27", "esbuild-linux-32": "0.14.36",
"esbuild-linux-64": "0.14.27", "esbuild-linux-64": "0.14.36",
"esbuild-linux-arm": "0.14.27", "esbuild-linux-arm": "0.14.36",
"esbuild-linux-arm64": "0.14.27", "esbuild-linux-arm64": "0.14.36",
"esbuild-linux-mips64le": "0.14.27", "esbuild-linux-mips64le": "0.14.36",
"esbuild-linux-ppc64le": "0.14.27", "esbuild-linux-ppc64le": "0.14.36",
"esbuild-linux-riscv64": "0.14.27", "esbuild-linux-riscv64": "0.14.36",
"esbuild-linux-s390x": "0.14.27", "esbuild-linux-s390x": "0.14.36",
"esbuild-netbsd-64": "0.14.27", "esbuild-netbsd-64": "0.14.36",
"esbuild-openbsd-64": "0.14.27", "esbuild-openbsd-64": "0.14.36",
"esbuild-sunos-64": "0.14.27", "esbuild-sunos-64": "0.14.36",
"esbuild-windows-32": "0.14.27", "esbuild-windows-32": "0.14.36",
"esbuild-windows-64": "0.14.27", "esbuild-windows-64": "0.14.36",
"esbuild-windows-arm64": "0.14.27" "esbuild-windows-arm64": "0.14.36"
} }
}, },
"esbuild-android-64": { "esbuild-android-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.36.tgz",
"integrity": "sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==", "integrity": "sha512-jwpBhF1jmo0tVCYC/ORzVN+hyVcNZUWuozGcLHfod0RJCedTDTvR4nwlTXdx1gtncDqjk33itjO+27OZHbiavw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-android-arm64": { "esbuild-android-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.36.tgz",
"integrity": "sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==", "integrity": "sha512-/hYkyFe7x7Yapmfv4X/tBmyKnggUmdQmlvZ8ZlBnV4+PjisrEhAvC3yWpURuD9XoB8Wa1d5dGkTsF53pIvpjsg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-darwin-64": { "esbuild-darwin-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.36.tgz",
"integrity": "sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==", "integrity": "sha512-kkl6qmV0dTpyIMKagluzYqlc1vO0ecgpviK/7jwPbRDEv5fejRTaBBEE2KxEQbTHcLhiiDbhG7d5UybZWo/1zQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-darwin-arm64": { "esbuild-darwin-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.36.tgz",
"integrity": "sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==", "integrity": "sha512-q8fY4r2Sx6P0Pr3VUm//eFYKVk07C5MHcEinU1BjyFnuYz4IxR/03uBbDwluR6ILIHnZTE7AkTUWIdidRi1Jjw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-freebsd-64": { "esbuild-freebsd-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.36.tgz",
"integrity": "sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==", "integrity": "sha512-Hn8AYuxXXRptybPqoMkga4HRFE7/XmhtlQjXFHoAIhKUPPMeJH35GYEUWGbjteai9FLFvBAjEAlwEtSGxnqWww==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-freebsd-arm64": { "esbuild-freebsd-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.36.tgz",
"integrity": "sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==", "integrity": "sha512-S3C0attylLLRiCcHiJd036eDEMOY32+h8P+jJ3kTcfhJANNjP0TNBNL30TZmEdOSx/820HJFgRrqpNAvTbjnDA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-32": { "esbuild-linux-32": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.36.tgz",
"integrity": "sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==", "integrity": "sha512-Eh9OkyTrEZn9WGO4xkI3OPPpUX7p/3QYvdG0lL4rfr73Ap2HAr6D9lP59VMF64Ex01LhHSXwIsFG/8AQjh6eNw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-64": { "esbuild-linux-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.36.tgz",
"integrity": "sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==", "integrity": "sha512-vFVFS5ve7PuwlfgoWNyRccGDi2QTNkQo/2k5U5ttVD0jRFaMlc8UQee708fOZA6zTCDy5RWsT5MJw3sl2X6KDg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-arm": { "esbuild-linux-arm": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.36.tgz",
"integrity": "sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==", "integrity": "sha512-NhgU4n+NCsYgt7Hy61PCquEz5aevI6VjQvxwBxtxrooXsxt5b2xtOUXYZe04JxqQo+XZk3d1gcr7pbV9MAQ/Lg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-arm64": { "esbuild-linux-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.36.tgz",
"integrity": "sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==", "integrity": "sha512-24Vq1M7FdpSmaTYuu1w0Hdhiqkbto1I5Pjyi+4Cdw5fJKGlwQuw+hWynTcRI/cOZxBcBpP21gND7W27gHAiftw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-mips64le": { "esbuild-linux-mips64le": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.36.tgz",
"integrity": "sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==", "integrity": "sha512-hZUeTXvppJN+5rEz2EjsOFM9F1bZt7/d2FUM1lmQo//rXh1RTFYzhC0txn7WV0/jCC7SvrGRaRz0NMsRPf8SIA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-ppc64le": { "esbuild-linux-ppc64le": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.36.tgz",
"integrity": "sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==", "integrity": "sha512-1Bg3QgzZjO+QtPhP9VeIBhAduHEc2kzU43MzBnMwpLSZ890azr4/A9Dganun8nsqD/1TBcqhId0z4mFDO8FAvg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-riscv64": { "esbuild-linux-riscv64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.36.tgz",
"integrity": "sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==", "integrity": "sha512-dOE5pt3cOdqEhaufDRzNCHf5BSwxgygVak9UR7PH7KPVHwSTDAZHDoEjblxLqjJYpc5XaU9+gKJ9F8mp9r5I4A==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-s390x": { "esbuild-linux-s390x": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.36.tgz",
"integrity": "sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==", "integrity": "sha512-g4FMdh//BBGTfVHjF6MO7Cz8gqRoDPzXWxRvWkJoGroKA18G9m0wddvPbEqcQf5Tbt2vSc1CIgag7cXwTmoTXg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-netbsd-64": { "esbuild-netbsd-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.36.tgz",
"integrity": "sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==", "integrity": "sha512-UB2bVImxkWk4vjnP62ehFNZ73lQY1xcnL5ZNYF3x0AG+j8HgdkNF05v67YJdCIuUJpBuTyCK8LORCYo9onSW+A==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-openbsd-64": { "esbuild-openbsd-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.36.tgz",
"integrity": "sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==", "integrity": "sha512-NvGB2Chf8GxuleXRGk8e9zD3aSdRO5kLt9coTQbCg7WMGXeX471sBgh4kSg8pjx0yTXRt0MlrUDnjVYnetyivg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-sunos-64": { "esbuild-sunos-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.36.tgz",
"integrity": "sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==", "integrity": "sha512-VkUZS5ftTSjhRjuRLp+v78auMO3PZBXu6xl4ajomGenEm2/rGuWlhFSjB7YbBNErOchj51Jb2OK8lKAo8qdmsQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-windows-32": { "esbuild-windows-32": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.36.tgz",
"integrity": "sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==", "integrity": "sha512-bIar+A6hdytJjZrDxfMBUSEHHLfx3ynoEZXx/39nxy86pX/w249WZm8Bm0dtOAByAf4Z6qV0LsnTIJHiIqbw0w==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-windows-64": { "esbuild-windows-64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.36.tgz",
"integrity": "sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==", "integrity": "sha512-+p4MuRZekVChAeueT1Y9LGkxrT5x7YYJxYE8ZOTcEfeUUN43vktSn6hUNsvxzzATrSgq5QqRdllkVBxWZg7KqQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-windows-arm64": { "esbuild-windows-arm64": {
"version": "0.14.27", "version": "0.14.36",
"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.36.tgz",
"integrity": "sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==", "integrity": "sha512-fBB4WlDqV1m18EF/aheGYQkQZHfPHiHJSBYzXIo8yKehek+0BtBwo/4PNwKGJ5T0YK0oc8pBKjgwPbzSrPLb+Q==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
@ -2910,9 +2910,9 @@
} }
}, },
"sass": { "sass": {
"version": "1.49.9", "version": "1.50.0",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.0.tgz",
"integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", "integrity": "sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"chokidar": ">=3.0.0 <4.0.0", "chokidar": ">=3.0.0 <4.0.0",

View File

@ -4,9 +4,9 @@
"build:css:dev": "sass ./resources/sass:./public/dist", "build:css:dev": "sass ./resources/sass:./public/dist",
"build:css:watch": "sass ./resources/sass:./public/dist --watch", "build:css:watch": "sass ./resources/sass:./public/dist --watch",
"build:css:production": "sass ./resources/sass:./public/dist -s compressed", "build:css:production": "sass ./resources/sass:./public/dist -s compressed",
"build:js:dev": "esbuild --bundle ./resources/js/*.{js,mjs} --outdir=public/dist/ --sourcemap --target=es2020 --main-fields=module,main --format=esm", "build:js:dev": "node dev/build/esbuild.js",
"build:js:watch": "chokidar --initial \"./resources/**/*.js\" -c \"npm run build:js:dev\"", "build:js:watch": "chokidar --initial \"./resources/**/*.js\" -c \"npm run build:js:dev\"",
"build:js:production": "NODE_ENV=production esbuild --bundle ./resources/js/*.{js,mjs} --outdir=public/dist/ --sourcemap --target=es2020 --main-fields=module,main --minify --format=esm", "build:js:production": "node dev/build/esbuild.js production",
"build": "npm-run-all --parallel build:*:dev", "build": "npm-run-all --parallel build:*:dev",
"production": "npm-run-all --parallel build:*:production", "production": "npm-run-all --parallel build:*:production",
"dev": "npm-run-all --parallel watch livereload", "dev": "npm-run-all --parallel watch livereload",
@ -16,11 +16,11 @@
}, },
"devDependencies": { "devDependencies": {
"chokidar-cli": "^3.0", "chokidar-cli": "^3.0",
"esbuild": "0.14.27", "esbuild": "0.14.36",
"livereload": "^0.9.3", "livereload": "^0.9.3",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"punycode": "^2.1.1", "punycode": "^2.1.1",
"sass": "^1.49.9" "sass": "^1.50.0"
}, },
"dependencies": { "dependencies": {
"clipboard": "^2.0.10", "clipboard": "^2.0.10",

View File

@ -0,0 +1 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6.99 16H14v-2H6.99v-3L3 15l3.99 4ZM21 9l-3.99-4v3H10v2h7.01v3z"/></svg>

After

Width:  |  Height:  |  Size: 141 B

View File

@ -131,7 +131,7 @@ class AutoSuggest {
return this.hideSuggestions(); return this.hideSuggestions();
} }
this.list.innerHTML = suggestions.map(value => `<li><button type="button">${escapeHtml(value)}</button></li>`).join(''); this.list.innerHTML = suggestions.map(value => `<li><button type="button" class="text-item">${escapeHtml(value)}</button></li>`).join('');
this.list.style.display = 'block'; this.list.style.display = 'block';
for (const button of this.list.querySelectorAll('button')) { for (const button of this.list.querySelectorAll('button')) {
button.addEventListener('blur', this.hideSuggestionsIfFocusedLost.bind(this)); button.addEventListener('blur', this.hideSuggestionsIfFocusedLost.bind(this));

View File

@ -96,7 +96,7 @@ class CodeEditor {
this.historyDropDown.classList.toggle('hidden', historyKeys.length === 0); this.historyDropDown.classList.toggle('hidden', historyKeys.length === 0);
this.historyList.innerHTML = historyKeys.map(key => { this.historyList.innerHTML = historyKeys.map(key => {
const localTime = (new Date(parseInt(key))).toLocaleTimeString(); const localTime = (new Date(parseInt(key))).toLocaleTimeString();
return `<li><button type="button" data-time="${key}">${localTime}</button></li>`; return `<li><button type="button" data-time="${key}" class="text-item">${localTime}</button></li>`;
}).join(''); }).join('');
} }

View File

@ -0,0 +1,52 @@
import {onSelect} from "../services/dom";
/**
* Custom equivalent of window.confirm() using our popup component.
* Is promise based so can be used like so:
* `const result = await dialog.show()`
* @extends {Component}
*/
class ConfirmDialog {
setup() {
this.container = this.$el;
this.confirmButton = this.$refs.confirm;
this.res = null;
onSelect(this.confirmButton, () => {
this.sendResult(true);
this.getPopup().hide();
});
}
show() {
this.getPopup().show(null, () => {
this.sendResult(false);
});
return new Promise((res, rej) => {
this.res = res;
});
}
/**
* @returns {Popup}
*/
getPopup() {
return this.container.components.popup;
}
/**
* @param {Boolean} result
*/
sendResult(result) {
if (this.res) {
this.res(result)
this.res = null;
}
}
}
export default ConfirmDialog;

View File

@ -10,6 +10,7 @@ import chapterToggle from "./chapter-toggle.js"
import codeEditor from "./code-editor.js" import codeEditor from "./code-editor.js"
import codeHighlighter from "./code-highlighter.js" import codeHighlighter from "./code-highlighter.js"
import collapsible from "./collapsible.js" import collapsible from "./collapsible.js"
import confirmDialog from "./confirm-dialog"
import customCheckbox from "./custom-checkbox.js" import customCheckbox from "./custom-checkbox.js"
import detailsHighlighter from "./details-highlighter.js" import detailsHighlighter from "./details-highlighter.js"
import dropdown from "./dropdown.js" import dropdown from "./dropdown.js"
@ -26,7 +27,6 @@ import headerMobileToggle from "./header-mobile-toggle.js"
import homepageControl from "./homepage-control.js" import homepageControl from "./homepage-control.js"
import imageManager from "./image-manager.js" import imageManager from "./image-manager.js"
import imagePicker from "./image-picker.js" import imagePicker from "./image-picker.js"
import index from "./index.js"
import listSortControl from "./list-sort-control.js" import listSortControl from "./list-sort-control.js"
import markdownEditor from "./markdown-editor.js" import markdownEditor from "./markdown-editor.js"
import newUserPassword from "./new-user-password.js" import newUserPassword from "./new-user-password.js"
@ -66,6 +66,7 @@ const componentMapping = {
"code-editor": codeEditor, "code-editor": codeEditor,
"code-highlighter": codeHighlighter, "code-highlighter": codeHighlighter,
"collapsible": collapsible, "collapsible": collapsible,
"confirm-dialog": confirmDialog,
"custom-checkbox": customCheckbox, "custom-checkbox": customCheckbox,
"details-highlighter": detailsHighlighter, "details-highlighter": detailsHighlighter,
"dropdown": dropdown, "dropdown": dropdown,
@ -82,7 +83,6 @@ const componentMapping = {
"homepage-control": homepageControl, "homepage-control": homepageControl,
"image-manager": imageManager, "image-manager": imageManager,
"image-picker": imagePicker, "image-picker": imagePicker,
"index": index,
"list-sort-control": listSortControl, "list-sort-control": listSortControl,
"markdown-editor": markdownEditor, "markdown-editor": markdownEditor,
"new-user-password": newUserPassword, "new-user-password": newUserPassword,

View File

@ -24,6 +24,8 @@ class PageEditor {
this.draftDisplayIcon = this.$refs.draftDisplayIcon; this.draftDisplayIcon = this.$refs.draftDisplayIcon;
this.changelogInput = this.$refs.changelogInput; this.changelogInput = this.$refs.changelogInput;
this.changelogDisplay = this.$refs.changelogDisplay; this.changelogDisplay = this.$refs.changelogDisplay;
this.changeEditorButtons = this.$manyRefs.changeEditor;
this.switchDialogContainer = this.$refs.switchDialog;
// Translations // Translations
this.draftText = this.$opts.draftText; this.draftText = this.$opts.draftText;
@ -72,6 +74,9 @@ class PageEditor {
// Draft Controls // Draft Controls
onSelect(this.saveDraftButton, this.saveDraft.bind(this)); onSelect(this.saveDraftButton, this.saveDraft.bind(this));
onSelect(this.discardDraftButton, this.discardDraft.bind(this)); onSelect(this.discardDraftButton, this.discardDraft.bind(this));
// Change editor controls
onSelect(this.changeEditorButtons, this.changeEditor.bind(this));
} }
setInitialFocus() { setInitialFocus() {
@ -113,17 +118,21 @@ class PageEditor {
data.markdown = this.editorMarkdown; data.markdown = this.editorMarkdown;
} }
let didSave = false;
try { try {
const resp = await window.$http.put(`/ajax/page/${this.pageId}/save-draft`, data); const resp = await window.$http.put(`/ajax/page/${this.pageId}/save-draft`, data);
if (!this.isNewDraft) { if (!this.isNewDraft) {
this.toggleDiscardDraftVisibility(true); this.toggleDiscardDraftVisibility(true);
} }
this.draftNotifyChange(`${resp.data.message} ${Dates.utcTimeStampToLocalTime(resp.data.timestamp)}`); this.draftNotifyChange(`${resp.data.message} ${Dates.utcTimeStampToLocalTime(resp.data.timestamp)}`);
this.autoSave.last = Date.now(); this.autoSave.last = Date.now();
if (resp.data.warning && !this.shownWarningsCache.has(resp.data.warning)) { if (resp.data.warning && !this.shownWarningsCache.has(resp.data.warning)) {
window.$events.emit('warning', resp.data.warning); window.$events.emit('warning', resp.data.warning);
this.shownWarningsCache.add(resp.data.warning); this.shownWarningsCache.add(resp.data.warning);
} }
didSave = true;
} catch (err) { } catch (err) {
// Save the editor content in LocalStorage as a last resort, just in case. // Save the editor content in LocalStorage as a last resort, just in case.
try { try {
@ -134,6 +143,7 @@ class PageEditor {
window.$events.emit('error', this.autosaveFailText); window.$events.emit('error', this.autosaveFailText);
} }
return didSave;
} }
draftNotifyChange(text) { draftNotifyChange(text) {
@ -185,6 +195,18 @@ class PageEditor {
this.discardDraftWrap.classList.toggle('hidden', !show); this.discardDraftWrap.classList.toggle('hidden', !show);
} }
async changeEditor(event) {
event.preventDefault();
const link = event.target.closest('a').href;
const dialog = this.switchDialogContainer.components['confirm-dialog'];
const [saved, confirmed] = await Promise.all([this.saveDraft(), dialog.show()]);
if (saved && confirmed) {
window.location = link;
}
}
} }
export default PageEditor; export default PageEditor;

View File

@ -34,7 +34,7 @@ class Popup {
} }
hide(onComplete = null) { hide(onComplete = null) {
fadeOut(this.container, 240, onComplete); fadeOut(this.container, 120, onComplete);
if (this.onkeyup) { if (this.onkeyup) {
window.removeEventListener('keyup', this.onkeyup); window.removeEventListener('keyup', this.onkeyup);
this.onkeyup = null; this.onkeyup = null;
@ -45,7 +45,7 @@ class Popup {
} }
show(onComplete = null, onHide = null) { show(onComplete = null, onHide = null) {
fadeIn(this.container, 240, onComplete); fadeIn(this.container, 120, onComplete);
this.onkeyup = (event) => { this.onkeyup = (event) => {
if (event.key === 'Escape') { if (event.key === 'Escape') {

View File

@ -43,6 +43,8 @@ function drawReceive(event) {
drawEventSave(message); drawEventSave(message);
} else if (message.event === 'export') { } else if (message.event === 'export') {
drawEventExport(message); drawEventExport(message);
} else if (message.event === 'configure') {
drawEventConfigure();
} }
} }
@ -63,6 +65,12 @@ function drawEventInit() {
}); });
} }
function drawEventConfigure() {
const config = {};
window.$events.emitPublic(iFrame, 'editor-drawio::configure', {config});
drawPostMessage({action: 'configure', config});
}
function drawEventClose() { function drawEventClose() {
window.removeEventListener('message', drawReceive); window.removeEventListener('message', drawReceive);
if (iFrame) document.body.removeChild(iFrame); if (iFrame) document.body.removeChild(iFrame);

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'تم خفظ المسودة في ', 'pages_edit_draft_save_at' => 'تم خفظ المسودة في ',
'pages_edit_delete_draft' => 'حذف المسودة', 'pages_edit_delete_draft' => 'حذف المسودة',
'pages_edit_discard_draft' => 'التخلص من المسودة', 'pages_edit_discard_draft' => 'التخلص من المسودة',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'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' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'حفظ الصفحة', 'pages_save' => 'حفظ الصفحة',
'pages_title' => 'عنوان الصفحة', 'pages_title' => 'عنوان الصفحة',
'pages_name' => 'اسم الصفحة', 'pages_name' => 'اسم الصفحة',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'مراجعة #:id', 'pages_revisions_numbered' => 'مراجعة #:id',
'pages_revisions_numbered_changes' => 'مراجعة #: رقم تعريفي التغييرات', 'pages_revisions_numbered_changes' => 'مراجعة #: رقم تعريفي التغييرات',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'سجل التعديل', 'pages_revisions_changelog' => 'سجل التعديل',
'pages_revisions_changes' => 'التعديلات', 'pages_revisions_changes' => 'التعديلات',
'pages_revisions_current' => 'النسخة الحالية', 'pages_revisions_current' => 'النسخة الحالية',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'تفعيل حماية أكبر لرفع الصور؟', 'app_secure_images' => 'تفعيل حماية أكبر لرفع الصور؟',
'app_secure_images_toggle' => 'لمزيد من الحماية', 'app_secure_images_toggle' => 'لمزيد من الحماية',
'app_secure_images_desc' => 'لتحسين أداء النظام, ستكون جميع الصور متاحة للعامة. هذا الخيار يضيف سلسلة من الحروف والأرقام العشوائية صعبة التخمين إلى رابط الصورة. الرجاء التأكد من تعطيل فهرسة المسارات لمنع الوصول السهل.', 'app_secure_images_desc' => 'لتحسين أداء النظام, ستكون جميع الصور متاحة للعامة. هذا الخيار يضيف سلسلة من الحروف والأرقام العشوائية صعبة التخمين إلى رابط الصورة. الرجاء التأكد من تعطيل فهرسة المسارات لمنع الوصول السهل.',
'app_editor' => 'محرر الصفحة', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'الرجاء اختيار محرر النص الذي سيستخدم من قبل جميع المستخدمين لتحرير الصفحات.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Custom HTML head content', 'app_custom_html' => 'Custom HTML head content',
'app_custom_html_desc' => 'سيتم إدراج أي محتوى مضاف هنا في الجزء السفلي من قسم <head> من كل صفحة. هذا أمر مفيد لتجاوز الأنماط أو إضافة رمز التحليل.', 'app_custom_html_desc' => 'سيتم إدراج أي محتوى مضاف هنا في الجزء السفلي من قسم <head> من كل صفحة. هذا أمر مفيد لتجاوز الأنماط أو إضافة رمز التحليل.',
'app_custom_html_disabled_notice' => 'تم تعطيل محتوى HTML الرئيسي المخصص في صفحة الإعدادات هذه لضمان عكس أي تغييرات متتالية.', 'app_custom_html_disabled_notice' => 'تم تعطيل محتوى HTML الرئيسي المخصص في صفحة الإعدادات هذه لضمان عكس أي تغييرات متتالية.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'الوصول إلى واجهة برمجة تطبيقات النظام API', 'role_access_api' => 'الوصول إلى واجهة برمجة تطبيقات النظام API',
'role_manage_settings' => 'إدارة إعدادات التطبيق', 'role_manage_settings' => 'إدارة إعدادات التطبيق',
'role_export_content' => 'Export content', 'role_export_content' => 'Export content',
'role_editor_change' => 'Change page editor',
'role_asset' => 'أذونات الأصول', 'role_asset' => 'أذونات الأصول',
'roles_system_warning' => 'اعلم أن الوصول إلى أي من الأذونات الثلاثة المذكورة أعلاه يمكن أن يسمح للمستخدم بتغيير امتيازاته الخاصة أو امتيازات الآخرين في النظام. قم بتعيين الأدوار مع هذه الأذونات فقط للمستخدمين الموثوق بهم.', 'roles_system_warning' => 'اعلم أن الوصول إلى أي من الأذونات الثلاثة المذكورة أعلاه يمكن أن يسمح للمستخدم بتغيير امتيازاته الخاصة أو امتيازات الآخرين في النظام. قم بتعيين الأدوار مع هذه الأذونات فقط للمستخدمين الموثوق بهم.',
'role_asset_desc' => 'تتحكم هذه الأذونات في الوصول الافتراضي إلى الأصول داخل النظام. ستتجاوز الأذونات الخاصة بالكتب والفصول والصفحات هذه الأذونات.', 'role_asset_desc' => 'تتحكم هذه الأذونات في الوصول الافتراضي إلى الأصول داخل النظام. ستتجاوز الأذونات الخاصة بالكتب والفصول والصفحات هذه الأذونات.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Черновата е запазена в ', 'pages_edit_draft_save_at' => 'Черновата е запазена в ',
'pages_edit_delete_draft' => 'Изтрий чернова', 'pages_edit_delete_draft' => 'Изтрий чернова',
'pages_edit_discard_draft' => 'Отхвърляне на черновата', 'pages_edit_discard_draft' => 'Отхвърляне на черновата',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'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' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Запазване на страницата', 'pages_save' => 'Запазване на страницата',
'pages_title' => 'Заглавие на страницата', 'pages_title' => 'Заглавие на страницата',
'pages_name' => 'Име на страницата', 'pages_name' => 'Име на страницата',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '№', 'pages_revisions_number' => '№',
'pages_revisions_numbered' => 'Ревизия №:id', 'pages_revisions_numbered' => 'Ревизия №:id',
'pages_revisions_numbered_changes' => 'Ревизия №:id Промени', 'pages_revisions_numbered_changes' => 'Ревизия №:id Промени',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'История на промените', 'pages_revisions_changelog' => 'История на промените',
'pages_revisions_changes' => 'Промени', 'pages_revisions_changes' => 'Промени',
'pages_revisions_current' => 'Текуща версия', 'pages_revisions_current' => 'Текуща версия',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'По-висока сигурност при качване на изображения', 'app_secure_images' => 'По-висока сигурност при качване на изображения',
'app_secure_images_toggle' => 'Активиране на по-висока сигурност при качване на изображения', 'app_secure_images_toggle' => 'Активиране на по-висока сигурност при качване на изображения',
'app_secure_images_desc' => 'С цел производителност, всички изображения са публични. Тази настройка добавя случаен, труден за отгатване низ от символи пред линка на изображението. Подсигурете, че индексите на директорията не са включени за да предотвратите лесен достъп.', 'app_secure_images_desc' => 'С цел производителност, всички изображения са публични. Тази настройка добавя случаен, труден за отгатване низ от символи пред линка на изображението. Подсигурете, че индексите на директорията не са включени за да предотвратите лесен достъп.',
'app_editor' => 'Редактор на страница', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Изберете кой редактор да се използва от всички потребители за да редактират страници.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Персонализирано съдържание на HTML шапката', 'app_custom_html' => 'Персонализирано съдържание на HTML шапката',
'app_custom_html_desc' => 'Всяко съдържание, добавено тук, ще бъде поставено в долната част на секцията <head> на всяка страница. Това е удобно за преобладаващи стилове или добавяне на код за анализ.', 'app_custom_html_desc' => 'Всяко съдържание, добавено тук, ще бъде поставено в долната част на секцията <head> на всяка страница. Това е удобно за преобладаващи стилове или добавяне на код за анализ.',
'app_custom_html_disabled_notice' => 'Съдържанието на персонализираната HTML шапка е деактивирано на страницата с настройки, за да се гарантира, че евентуални лоши промени могат да бъдат върнати.', 'app_custom_html_disabled_notice' => 'Съдържанието на персонализираната HTML шапка е деактивирано на страницата с настройки, за да се гарантира, че евентуални лоши промени могат да бъдат върнати.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Достъп до API на системата', 'role_access_api' => 'Достъп до API на системата',
'role_manage_settings' => 'Управление на настройките на приложението', 'role_manage_settings' => 'Управление на настройките на приложението',
'role_export_content' => 'Експортирай съдържанието', 'role_export_content' => 'Експортирай съдържанието',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Настройки за достъп до активи', 'role_asset' => 'Настройки за достъп до активи',
'roles_system_warning' => 'Важно: Добавянето на потребител в някое от горните три роли може да му позволи да промени собствените си права или правата на другите в системата. Възлагайте тези роли само на доверени потребители.', 'roles_system_warning' => 'Важно: Добавянето на потребител в някое от горните три роли може да му позволи да промени собствените си права или правата на другите в системата. Възлагайте тези роли само на доверени потребители.',
'role_asset_desc' => 'Тези настройки за достъп контролират достъпа по подразбиране до активите в системата. Настройките за достъп до книги, глави и страници ще отменят тези настройки.', 'role_asset_desc' => 'Тези настройки за достъп контролират достъпа по подразбиране до активите в системата. Настройките за достъп до книги, глави и страници ще отменят тези настройки.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Draft saved at ', 'pages_edit_draft_save_at' => 'Draft saved at ',
'pages_edit_delete_draft' => 'Delete Draft', 'pages_edit_delete_draft' => 'Delete Draft',
'pages_edit_discard_draft' => 'Discard Draft', 'pages_edit_discard_draft' => 'Discard Draft',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Set Changelog', 'pages_edit_set_changelog' => 'Set Changelog',
'pages_edit_enter_changelog_desc' => 'Enter a brief description of the changes you\'ve made', 'pages_edit_enter_changelog_desc' => 'Enter a brief description of the changes you\'ve made',
'pages_edit_enter_changelog' => 'Enter Changelog', 'pages_edit_enter_changelog' => 'Enter Changelog',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Save Page', 'pages_save' => 'Save Page',
'pages_title' => 'Page Title', 'pages_title' => 'Page Title',
'pages_name' => 'Page Name', 'pages_name' => 'Page Name',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revision #:id', 'pages_revisions_numbered' => 'Revision #:id',
'pages_revisions_numbered_changes' => 'Revision #:id Changes', 'pages_revisions_numbered_changes' => 'Revision #:id Changes',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Changelog', 'pages_revisions_changelog' => 'Changelog',
'pages_revisions_changes' => 'Changes', 'pages_revisions_changes' => 'Changes',
'pages_revisions_current' => 'Trenutna verzija', 'pages_revisions_current' => 'Trenutna verzija',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Higher Security Image Uploads', 'app_secure_images' => 'Higher Security Image Uploads',
'app_secure_images_toggle' => 'Enable higher security image uploads', 'app_secure_images_toggle' => 'Enable higher security image uploads',
'app_secure_images_desc' => 'For performance reasons, all images are public. This option adds a random, hard-to-guess string in front of image urls. Ensure directory indexes are not enabled to prevent easy access.', 'app_secure_images_desc' => 'For performance reasons, all images are public. This option adds a random, hard-to-guess string in front of image urls. Ensure directory indexes are not enabled to prevent easy access.',
'app_editor' => 'Page Editor', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Select which editor will be used by all users to edit pages.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Custom HTML Head Content', 'app_custom_html' => 'Custom HTML Head Content',
'app_custom_html_desc' => 'Any content added here will be inserted into the bottom of the <head> section of every page. This is handy for overriding styles or adding analytics code.', 'app_custom_html_desc' => 'Any content added here will be inserted into the bottom of the <head> section of every page. This is handy for overriding styles or adding analytics code.',
'app_custom_html_disabled_notice' => 'Custom HTML head content is disabled on this settings page to ensure any breaking changes can be reverted.', 'app_custom_html_disabled_notice' => 'Custom HTML head content is disabled on this settings page to ensure any breaking changes can be reverted.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Access system API', 'role_access_api' => 'Access system API',
'role_manage_settings' => 'Manage app settings', 'role_manage_settings' => 'Manage app settings',
'role_export_content' => 'Export content', 'role_export_content' => 'Export content',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Asset Permissions', 'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.', 'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.', 'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Esborrany desat ', 'pages_edit_draft_save_at' => 'Esborrany desat ',
'pages_edit_delete_draft' => 'Suprimeix l\'esborrany', 'pages_edit_delete_draft' => 'Suprimeix l\'esborrany',
'pages_edit_discard_draft' => 'Descarta l\'esborrany', 'pages_edit_discard_draft' => 'Descarta l\'esborrany',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Defineix el registre de canvis', 'pages_edit_set_changelog' => 'Defineix el registre de canvis',
'pages_edit_enter_changelog_desc' => 'Introduïu una breu descripció dels canvis que heu fet', 'pages_edit_enter_changelog_desc' => 'Introduïu una breu descripció dels canvis que heu fet',
'pages_edit_enter_changelog' => 'Introduïu un registre de canvis', 'pages_edit_enter_changelog' => 'Introduïu un registre de canvis',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Desa la pàgina', 'pages_save' => 'Desa la pàgina',
'pages_title' => 'Títol de la pàgina', 'pages_title' => 'Títol de la pàgina',
'pages_name' => 'Nom de la pàgina', 'pages_name' => 'Nom de la pàgina',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => 'Núm. ', 'pages_revisions_number' => 'Núm. ',
'pages_revisions_numbered' => 'Revisió núm. :id', 'pages_revisions_numbered' => 'Revisió núm. :id',
'pages_revisions_numbered_changes' => 'Canvis de la revisió núm. :id', 'pages_revisions_numbered_changes' => 'Canvis de la revisió núm. :id',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Registre de canvis', 'pages_revisions_changelog' => 'Registre de canvis',
'pages_revisions_changes' => 'Canvis', 'pages_revisions_changes' => 'Canvis',
'pages_revisions_current' => 'Versió actual', 'pages_revisions_current' => 'Versió actual',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Pujades d\'imatges amb més seguretat', 'app_secure_images' => 'Pujades d\'imatges amb més seguretat',
'app_secure_images_toggle' => 'Activa les pujades d\'imatges amb més seguretat', 'app_secure_images_toggle' => 'Activa les pujades d\'imatges amb més seguretat',
'app_secure_images_desc' => 'Per motius de rendiment, totes les imatges són públiques. Aquesta opció afegeix una cadena aleatòria i difícil d\'endevinar al davant dels URL d\'imatges. Assegureu-vos que els índexs de directoris no estiguin activats per a evitar-hi l\'accés de manera fàcil.', 'app_secure_images_desc' => 'Per motius de rendiment, totes les imatges són públiques. Aquesta opció afegeix una cadena aleatòria i difícil d\'endevinar al davant dels URL d\'imatges. Assegureu-vos que els índexs de directoris no estiguin activats per a evitar-hi l\'accés de manera fàcil.',
'app_editor' => 'Editor de pàgines', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Seleccioneu quin editor faran servir tots els usuaris per a editar les pàgines.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Contingut personalitzat a la capçalera HTML', 'app_custom_html' => 'Contingut personalitzat a la capçalera HTML',
'app_custom_html_desc' => 'Aquí podeu afegir contingut que s\'inserirà a la part final de la secció <head> de cada pàgina. És útil per a sobreescriure estils o afegir-hi codi d\'analítiques.', 'app_custom_html_desc' => 'Aquí podeu afegir contingut que s\'inserirà a la part final de la secció <head> de cada pàgina. És útil per a sobreescriure estils o afegir-hi codi d\'analítiques.',
'app_custom_html_disabled_notice' => 'El contingut personalitzat a la capçalera HTML es desactiva en aquesta pàgina de la configuració per a assegurar que qualsevol canvi que trenqui el web es pugui desfer.', 'app_custom_html_disabled_notice' => 'El contingut personalitzat a la capçalera HTML es desactiva en aquesta pàgina de la configuració per a assegurar que qualsevol canvi que trenqui el web es pugui desfer.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Accedeix a l\'API del sistema', 'role_access_api' => 'Accedeix a l\'API del sistema',
'role_manage_settings' => 'Gestiona la configuració de l\'aplicació', 'role_manage_settings' => 'Gestiona la configuració de l\'aplicació',
'role_export_content' => 'Export content', 'role_export_content' => 'Export content',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Permisos de recursos', 'role_asset' => 'Permisos de recursos',
'roles_system_warning' => 'Tingueu en compte que l\'accés a qualsevol dels tres permisos de dalt pot permetre que un usuari alteri els seus propis permisos o els privilegis d\'altres usuaris del sistema. Assigneu rols amb aquests permisos només a usuaris de confiança.', 'roles_system_warning' => 'Tingueu en compte que l\'accés a qualsevol dels tres permisos de dalt pot permetre que un usuari alteri els seus propis permisos o els privilegis d\'altres usuaris del sistema. Assigneu rols amb aquests permisos només a usuaris de confiança.',
'role_asset_desc' => 'Aquests permisos controlen l\'accés per defecte als recursos del sistema. Els permisos de llibres, capítols i pàgines tindran més importància que aquests permisos.', 'role_asset_desc' => 'Aquests permisos controlen l\'accés per defecte als recursos del sistema. Els permisos de llibres, capítols i pàgines tindran més importància que aquests permisos.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Koncept uložen v ', 'pages_edit_draft_save_at' => 'Koncept uložen v ',
'pages_edit_delete_draft' => 'Odstranit koncept', 'pages_edit_delete_draft' => 'Odstranit koncept',
'pages_edit_discard_draft' => 'Zahodit koncept', 'pages_edit_discard_draft' => 'Zahodit koncept',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Nastavit protokol změn', 'pages_edit_set_changelog' => 'Nastavit protokol změn',
'pages_edit_enter_changelog_desc' => 'Zadejte stručný popis změn, které jste provedli', 'pages_edit_enter_changelog_desc' => 'Zadejte stručný popis změn, které jste provedli',
'pages_edit_enter_changelog' => 'Zadejte protokol změn', 'pages_edit_enter_changelog' => 'Zadejte protokol změn',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Uložit stránku', 'pages_save' => 'Uložit stránku',
'pages_title' => 'Nadpis stránky', 'pages_title' => 'Nadpis stránky',
'pages_name' => 'Název stránky', 'pages_name' => 'Název stránky',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => 'Č. ', 'pages_revisions_number' => 'Č. ',
'pages_revisions_numbered' => 'Revize č. :id', 'pages_revisions_numbered' => 'Revize č. :id',
'pages_revisions_numbered_changes' => 'Změny revize č. :id', 'pages_revisions_numbered_changes' => 'Změny revize č. :id',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Protokol změn', 'pages_revisions_changelog' => 'Protokol změn',
'pages_revisions_changes' => 'Změny', 'pages_revisions_changes' => 'Změny',
'pages_revisions_current' => 'Aktuální verze', 'pages_revisions_current' => 'Aktuální verze',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Nahrávat obrázky neveřejně a zabezpečeně', 'app_secure_images' => 'Nahrávat obrázky neveřejně a zabezpečeně',
'app_secure_images_toggle' => 'Zapnout bezpečnější nahrávání obrázků', 'app_secure_images_toggle' => 'Zapnout bezpečnější nahrávání obrázků',
'app_secure_images_desc' => 'Z výkonnostních důvodů jsou všechny obrázky veřejně dostupné. Tato volba přidá do adresy obrázku náhodný řetězec, aby nikdo neodhadnul adresu obrázku. Ujistěte se, že server nezobrazuje v adresáři seznam souborů, což by přístup k přístup opět otevřelo.', 'app_secure_images_desc' => 'Z výkonnostních důvodů jsou všechny obrázky veřejně dostupné. Tato volba přidá do adresy obrázku náhodný řetězec, aby nikdo neodhadnul adresu obrázku. Ujistěte se, že server nezobrazuje v adresáři seznam souborů, což by přístup k přístup opět otevřelo.',
'app_editor' => 'Editor stránek', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Zvolte který editor budou užívat všichni uživatelé k úpravě stránek.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Vlastní obsah hlavičky HTML', 'app_custom_html' => 'Vlastní obsah hlavičky HTML',
'app_custom_html_desc' => 'Cokoliv sem napíšete bude přidáno na konec sekce <head> v každém místě této aplikace. To se hodí pro přidávání nebo změnu CSS stylů nebo přidání kódu pro analýzu používání (např.: google analytics.).', 'app_custom_html_desc' => 'Cokoliv sem napíšete bude přidáno na konec sekce <head> v každém místě této aplikace. To se hodí pro přidávání nebo změnu CSS stylů nebo přidání kódu pro analýzu používání (např.: google analytics.).',
'app_custom_html_disabled_notice' => 'Na této stránce nastavení je zakázán vlastní obsah HTML hlavičky, aby bylo zajištěno, že bude možné vrátit případnou problematickou úpravu.', 'app_custom_html_disabled_notice' => 'Na této stránce nastavení je zakázán vlastní obsah HTML hlavičky, aby bylo zajištěno, že bude možné vrátit případnou problematickou úpravu.',
@ -152,6 +152,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_editor_change' => 'Change page editor',
'role_asset' => 'Obsahová oprávnění', 'role_asset' => 'Obsahová oprávnění',
'roles_system_warning' => 'Berte na vědomí, že přístup k některému ze tří výše uvedených oprávnění může uživateli umožnit změnit svá vlastní oprávnění nebo oprávnění ostatních uživatelů v systému. Přiřazujte role s těmito oprávněními pouze důvěryhodným uživatelům.', 'roles_system_warning' => 'Berte na vědomí, že přístup k některému ze tří výše uvedených oprávnění může uživateli umožnit změnit svá vlastní oprávnění nebo oprávnění ostatních uživatelů v systému. Přiřazujte role s těmito oprávněními pouze důvěryhodným uživatelům.',
'role_asset_desc' => 'Tato oprávnění řídí přístup k obsahu napříč systémem. Specifická oprávnění na knihách, kapitolách a stránkách převáží tato nastavení.', 'role_asset_desc' => 'Tato oprávnění řídí přístup k obsahu napříč systémem. Specifická oprávnění na knihách, kapitolách a stránkách převáží tato nastavení.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Kladde gemt ved ', 'pages_edit_draft_save_at' => 'Kladde gemt ved ',
'pages_edit_delete_draft' => 'Slet kladde', 'pages_edit_delete_draft' => 'Slet kladde',
'pages_edit_discard_draft' => 'Kassér kladde', 'pages_edit_discard_draft' => 'Kassér kladde',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Sæt ændringsoversigt', 'pages_edit_set_changelog' => 'Sæt ændringsoversigt',
'pages_edit_enter_changelog_desc' => 'Indtast en kort beskrivelse af ændringer du har lavet', 'pages_edit_enter_changelog_desc' => 'Indtast en kort beskrivelse af ændringer du har lavet',
'pages_edit_enter_changelog' => 'Indtast ændringsoversigt', 'pages_edit_enter_changelog' => 'Indtast ændringsoversigt',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Gem siden', 'pages_save' => 'Gem siden',
'pages_title' => 'Overskrift', 'pages_title' => 'Overskrift',
'pages_name' => 'Sidenavn', 'pages_name' => 'Sidenavn',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revision #:id', 'pages_revisions_numbered' => 'Revision #:id',
'pages_revisions_numbered_changes' => 'Revision #:id ændringer', 'pages_revisions_numbered_changes' => 'Revision #:id ændringer',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Ændringsoversigt', 'pages_revisions_changelog' => 'Ændringsoversigt',
'pages_revisions_changes' => 'Ændringer', 'pages_revisions_changes' => 'Ændringer',
'pages_revisions_current' => 'Nuværende version', 'pages_revisions_current' => 'Nuværende version',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Højere sikkerhed for billeduploads', 'app_secure_images' => 'Højere sikkerhed for billeduploads',
'app_secure_images_toggle' => 'Aktiver højere sikkerhed for billeduploads', 'app_secure_images_toggle' => 'Aktiver højere sikkerhed for billeduploads',
'app_secure_images_desc' => 'Af performanceårsager er alle billeder offentlige. Denne funktion tilføjer en tilfældig, vanskelig at gætte streng foran billed-url\'er. Sørg for, at mappeindeksering ikke er aktiveret for at forhindre nem adgang.', 'app_secure_images_desc' => 'Af performanceårsager er alle billeder offentlige. Denne funktion tilføjer en tilfældig, vanskelig at gætte streng foran billed-url\'er. Sørg for, at mappeindeksering ikke er aktiveret for at forhindre nem adgang.',
'app_editor' => 'Sideeditor', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Vælg hvilken editor der skal bruges af alle brugere til at redigere sider.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Tilpasset HTML head indhold', 'app_custom_html' => 'Tilpasset HTML head indhold',
'app_custom_html_desc' => 'Alt indhold tilføjet her, vil blive indsat i bunden af <head> sektionen på alle sider. Dette er brugbart til overskrivning af styles og tilføjelse af analytics kode.', 'app_custom_html_desc' => 'Alt indhold tilføjet her, vil blive indsat i bunden af <head> sektionen på alle sider. Dette er brugbart til overskrivning af styles og tilføjelse af analytics kode.',
'app_custom_html_disabled_notice' => 'Brugerdefineret HTML head indhold er deaktiveret på denne indstillingsside for at, at ændringer kan rulles tilbage.', 'app_custom_html_disabled_notice' => 'Brugerdefineret HTML head indhold er deaktiveret på denne indstillingsside for at, at ændringer kan rulles tilbage.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Tilgå system-API', 'role_access_api' => 'Tilgå system-API',
'role_manage_settings' => 'Administrer app-indstillinger', 'role_manage_settings' => 'Administrer app-indstillinger',
'role_export_content' => 'Eksporter indhold', 'role_export_content' => 'Eksporter indhold',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Tilladelser for medier og "assets"', 'role_asset' => 'Tilladelser for medier og "assets"',
'roles_system_warning' => 'Vær opmærksom på, at adgang til alle af de ovennævnte tre tilladelser, kan give en bruger mulighed for at ændre deres egne brugerrettigheder eller brugerrettigheder for andre i systemet. Tildel kun roller med disse tilladelser til betroede brugere.', 'roles_system_warning' => 'Vær opmærksom på, at adgang til alle af de ovennævnte tre tilladelser, kan give en bruger mulighed for at ændre deres egne brugerrettigheder eller brugerrettigheder for andre i systemet. Tildel kun roller med disse tilladelser til betroede brugere.',
'role_asset_desc' => 'Disse tilladelser kontrollerer standardadgang til medier og "assets" i systemet. Tilladelser til bøger, kapitler og sider tilsidesætter disse tilladelser.', 'role_asset_desc' => 'Disse tilladelser kontrollerer standardadgang til medier og "assets" i systemet. Tilladelser til bøger, kapitler og sider tilsidesætter disse tilladelser.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Entwurf gespeichert um ', 'pages_edit_draft_save_at' => 'Entwurf gespeichert um ',
'pages_edit_delete_draft' => 'Entwurf löschen', 'pages_edit_delete_draft' => 'Entwurf löschen',
'pages_edit_discard_draft' => 'Entwurf verwerfen', 'pages_edit_discard_draft' => 'Entwurf verwerfen',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'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',
'pages_edit_enter_changelog' => 'Änderungsprotokoll eingeben', 'pages_edit_enter_changelog' => 'Änderungsprotokoll eingeben',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Seite speichern', 'pages_save' => 'Seite speichern',
'pages_title' => 'Seitentitel', 'pages_title' => 'Seitentitel',
'pages_name' => 'Seitenname', 'pages_name' => 'Seitenname',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revision #:id', 'pages_revisions_numbered' => 'Revision #:id',
'pages_revisions_numbered_changes' => 'Revision #:id Änderungen', 'pages_revisions_numbered_changes' => 'Revision #:id Änderungen',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Änderungsprotokoll', 'pages_revisions_changelog' => 'Änderungsprotokoll',
'pages_revisions_changes' => 'Änderungen', 'pages_revisions_changes' => 'Änderungen',
'pages_revisions_current' => 'Aktuelle Version', 'pages_revisions_current' => 'Aktuelle Version',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Erhöhte Sicherheit für hochgeladene Bilder aktivieren?', 'app_secure_images' => 'Erhöhte Sicherheit für hochgeladene Bilder aktivieren?',
'app_secure_images_toggle' => 'Aktiviere Bild-Upload höherer Sicherheit', 'app_secure_images_toggle' => 'Aktiviere Bild-Upload höherer Sicherheit',
'app_secure_images_desc' => 'Aus Leistungsgründen sind alle Bilder öffentlich sichtbar. Diese Option fügt zufällige, schwer zu eratene, Zeichenketten zu Bild-URLs hinzu. Stellen sie sicher, dass Verzeichnisindizes deaktiviert sind, um einen einfachen Zugriff zu verhindern.', 'app_secure_images_desc' => 'Aus Leistungsgründen sind alle Bilder öffentlich sichtbar. Diese Option fügt zufällige, schwer zu eratene, Zeichenketten zu Bild-URLs hinzu. Stellen sie sicher, dass Verzeichnisindizes deaktiviert sind, um einen einfachen Zugriff zu verhindern.',
'app_editor' => 'Seiteneditor', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Wählen Sie den Editor aus, der von allen Benutzern genutzt werden soll, um Seiten zu editieren.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Benutzerdefinierter HTML <head> Inhalt', 'app_custom_html' => 'Benutzerdefinierter HTML <head> Inhalt',
'app_custom_html_desc' => 'Jeder Inhalt, der hier hinzugefügt wird, wird am Ende der <head> Sektion jeder Seite eingefügt. Diese kann praktisch sein, um CSS Styles anzupassen oder Analytics-Code hinzuzufügen.', 'app_custom_html_desc' => 'Jeder Inhalt, der hier hinzugefügt wird, wird am Ende der <head> Sektion jeder Seite eingefügt. Diese kann praktisch sein, um CSS Styles anzupassen oder Analytics-Code hinzuzufügen.',
'app_custom_html_disabled_notice' => 'Benutzerdefinierte HTML-Kopfzeileninhalte sind auf dieser Einstellungsseite deaktiviert, um sicherzustellen, dass alle Änderungen rückgängig gemacht werden können.', 'app_custom_html_disabled_notice' => 'Benutzerdefinierte HTML-Kopfzeileninhalte sind auf dieser Einstellungsseite deaktiviert, um sicherzustellen, dass alle Änderungen rückgängig gemacht werden können.',
@ -155,6 +155,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_editor_change' => 'Change page editor',
'role_asset' => 'Berechtigungen', 'role_asset' => 'Berechtigungen',
'roles_system_warning' => 'Beachten Sie, dass der Zugriff auf eine der oben genannten drei Berechtigungen einem Benutzer erlauben kann, seine eigenen Berechtigungen oder die Rechte anderer im System zu ändern. Weisen Sie nur Rollen, mit diesen Berechtigungen, vertrauenswürdigen Benutzern zu.', 'roles_system_warning' => 'Beachten Sie, dass der Zugriff auf eine der oben genannten drei Berechtigungen einem Benutzer erlauben kann, seine eigenen Berechtigungen oder die Rechte anderer im System zu ändern. Weisen Sie nur Rollen, mit diesen Berechtigungen, vertrauenswürdigen Benutzern zu.',
'role_asset_desc' => 'Diese Berechtigungen gelten für den Standard-Zugriff innerhalb des Systems. Berechtigungen für Bücher, Kapitel und Seiten überschreiben diese Berechtigungenen.', 'role_asset_desc' => 'Diese Berechtigungen gelten für den Standard-Zugriff innerhalb des Systems. Berechtigungen für Bücher, Kapitel und Seiten überschreiben diese Berechtigungenen.',
@ -202,7 +203,7 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
'users_social_accounts' => 'Social-Media Konten', 'users_social_accounts' => 'Social-Media Konten',
'users_social_accounts_info' => 'Hier können Sie andere Social-Media-Konten für eine schnellere und einfachere Anmeldung verknüpfen. Wenn Sie ein Social-Media Konto lösen, bleibt der Zugriff erhalten. Entfernen Sie in diesem Falle die Berechtigung in Ihren Profil-Einstellungen des verknüpften Social-Media-Kontos.', 'users_social_accounts_info' => 'Hier können Sie andere Social-Media-Konten für eine schnellere und einfachere Anmeldung verknüpfen. Wenn Sie ein Social-Media Konto lösen, bleibt der Zugriff erhalten. Entfernen Sie in diesem Falle die Berechtigung in Ihren Profil-Einstellungen des verknüpften Social-Media-Kontos.',
'users_social_connect' => 'Social-Media-Konto verknüpfen', 'users_social_connect' => 'Social-Media-Konto verknüpfen',
'users_social_disconnect' => 'Social-Media-Konto lösen', 'users_social_disconnect' => 'Social-Media-Konto löschen',
'users_social_connected' => ':socialAccount-Konto wurde erfolgreich mit dem Profil verknüpft.', 'users_social_connected' => ':socialAccount-Konto wurde erfolgreich mit dem Profil verknüpft.',
'users_social_disconnected' => ':socialAccount-Konto wurde erfolgreich vom Profil gelöst.', 'users_social_disconnected' => ':socialAccount-Konto wurde erfolgreich vom Profil gelöst.',
'users_api_tokens' => 'API-Token', 'users_api_tokens' => 'API-Token',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Entwurf gespeichert um ', 'pages_edit_draft_save_at' => 'Entwurf gespeichert um ',
'pages_edit_delete_draft' => 'Entwurf löschen', 'pages_edit_delete_draft' => 'Entwurf löschen',
'pages_edit_discard_draft' => 'Entwurf verwerfen', 'pages_edit_discard_draft' => 'Entwurf verwerfen',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Änderungsprotokoll hinzufügen', 'pages_edit_set_changelog' => 'Änderungsprotokoll hinzufügen',
'pages_edit_enter_changelog_desc' => 'Bitte gib eine kurze Zusammenfassung Deiner Änderungen ein', 'pages_edit_enter_changelog_desc' => 'Bitte gib eine kurze Zusammenfassung Deiner Änderungen ein',
'pages_edit_enter_changelog' => 'Änderungsprotokoll eingeben', 'pages_edit_enter_changelog' => 'Änderungsprotokoll eingeben',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Seite speichern', 'pages_save' => 'Seite speichern',
'pages_title' => 'Seitentitel', 'pages_title' => 'Seitentitel',
'pages_name' => 'Seitenname', 'pages_name' => 'Seitenname',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revision #:id', 'pages_revisions_numbered' => 'Revision #:id',
'pages_revisions_numbered_changes' => 'Revision #:id Änderungen', 'pages_revisions_numbered_changes' => 'Revision #:id Änderungen',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Änderungsprotokoll', 'pages_revisions_changelog' => 'Änderungsprotokoll',
'pages_revisions_changes' => 'Änderungen', 'pages_revisions_changes' => 'Änderungen',
'pages_revisions_current' => 'Aktuelle Version', 'pages_revisions_current' => 'Aktuelle Version',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Erhöhte Sicherheit für hochgeladene Bilder aktivieren?', 'app_secure_images' => 'Erhöhte Sicherheit für hochgeladene Bilder aktivieren?',
'app_secure_images_toggle' => 'Aktiviere Bild-Upload mit höherer Sicherheit', 'app_secure_images_toggle' => 'Aktiviere Bild-Upload mit höherer Sicherheit',
'app_secure_images_desc' => 'Aus Leistungsgründen sind alle Bilder öffentlich sichtbar. Diese Option fügt zufällige, schwer zu eratene, Zeichenketten zu Bild-URLs hinzu. Stellen sie sicher, dass Verzeichnisindizes deaktiviert sind, um einen einfachen Zugriff zu verhindern.', 'app_secure_images_desc' => 'Aus Leistungsgründen sind alle Bilder öffentlich sichtbar. Diese Option fügt zufällige, schwer zu eratene, Zeichenketten zu Bild-URLs hinzu. Stellen sie sicher, dass Verzeichnisindizes deaktiviert sind, um einen einfachen Zugriff zu verhindern.',
'app_editor' => 'Seiteneditor', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Wähle den Editor aus, der von allen Benutzern genutzt werden soll, um Seiten zu editieren.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Benutzerdefinierter HTML <head> Inhalt', 'app_custom_html' => 'Benutzerdefinierter HTML <head> Inhalt',
'app_custom_html_desc' => 'Jeder Inhalt, der hier hinzugefügt wird, wird am Ende der <head> Sektion jeder Seite eingefügt. Diese kann praktisch sein, um CSS Styles anzupassen oder Analytics-Code hinzuzufügen.', 'app_custom_html_desc' => 'Jeder Inhalt, der hier hinzugefügt wird, wird am Ende der <head> Sektion jeder Seite eingefügt. Diese kann praktisch sein, um CSS Styles anzupassen oder Analytics-Code hinzuzufügen.',
'app_custom_html_disabled_notice' => 'Benutzerdefinierte HTML-Kopfzeileninhalte sind auf dieser Einstellungsseite deaktiviert, um sicherzustellen, dass alle Änderungen rückgängig gemacht werden können.', 'app_custom_html_disabled_notice' => 'Benutzerdefinierte HTML-Kopfzeileninhalte sind auf dieser Einstellungsseite deaktiviert, um sicherzustellen, dass alle Änderungen rückgängig gemacht werden können.',
@ -155,6 +155,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_editor_change' => 'Change page editor',
'role_asset' => 'Berechtigungen', 'role_asset' => 'Berechtigungen',
'roles_system_warning' => 'Beachten Sie, dass der Zugriff auf eine der oben genannten drei Berechtigungen einem Benutzer erlauben kann, seine eigenen Berechtigungen oder die Rechte anderer im System zu ändern. Weisen Sie nur Rollen, mit diesen Berechtigungen, vertrauenswürdigen Benutzern zu.', 'roles_system_warning' => 'Beachten Sie, dass der Zugriff auf eine der oben genannten drei Berechtigungen einem Benutzer erlauben kann, seine eigenen Berechtigungen oder die Rechte anderer im System zu ändern. Weisen Sie nur Rollen, mit diesen Berechtigungen, vertrauenswürdigen Benutzern zu.',
'role_asset_desc' => 'Diese Berechtigungen gelten für den Standard-Zugriff innerhalb des Systems. Berechtigungen für Bücher, Kapitel und Seiten überschreiben diese Berechtigungenen.', 'role_asset_desc' => 'Diese Berechtigungen gelten für den Standard-Zugriff innerhalb des Systems. Berechtigungen für Bücher, Kapitel und Seiten überschreiben diese Berechtigungenen.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Draft saved at ', 'pages_edit_draft_save_at' => 'Draft saved at ',
'pages_edit_delete_draft' => 'Delete Draft', 'pages_edit_delete_draft' => 'Delete Draft',
'pages_edit_discard_draft' => 'Discard Draft', 'pages_edit_discard_draft' => 'Discard Draft',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Set Changelog', 'pages_edit_set_changelog' => 'Set Changelog',
'pages_edit_enter_changelog_desc' => 'Enter a brief description of the changes you\'ve made', 'pages_edit_enter_changelog_desc' => 'Enter a brief description of the changes you\'ve made',
'pages_edit_enter_changelog' => 'Enter Changelog', 'pages_edit_enter_changelog' => 'Enter Changelog',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Save Page', 'pages_save' => 'Save Page',
'pages_title' => 'Page Title', 'pages_title' => 'Page Title',
'pages_name' => 'Page Name', 'pages_name' => 'Page Name',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revision #:id', 'pages_revisions_numbered' => 'Revision #:id',
'pages_revisions_numbered_changes' => 'Revision #:id Changes', 'pages_revisions_numbered_changes' => 'Revision #:id Changes',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Changelog', 'pages_revisions_changelog' => 'Changelog',
'pages_revisions_changes' => 'Changes', 'pages_revisions_changes' => 'Changes',
'pages_revisions_current' => 'Current Version', 'pages_revisions_current' => 'Current Version',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Higher Security Image Uploads', 'app_secure_images' => 'Higher Security Image Uploads',
'app_secure_images_toggle' => 'Enable higher security image uploads', 'app_secure_images_toggle' => 'Enable higher security image uploads',
'app_secure_images_desc' => 'For performance reasons, all images are public. This option adds a random, hard-to-guess string in front of image urls. Ensure directory indexes are not enabled to prevent easy access.', 'app_secure_images_desc' => 'For performance reasons, all images are public. This option adds a random, hard-to-guess string in front of image urls. Ensure directory indexes are not enabled to prevent easy access.',
'app_editor' => 'Page Editor', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Select which editor will be used by all users to edit pages.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Custom HTML Head Content', 'app_custom_html' => 'Custom HTML Head Content',
'app_custom_html_desc' => 'Any content added here will be inserted into the bottom of the <head> section of every page. This is handy for overriding styles or adding analytics code.', 'app_custom_html_desc' => 'Any content added here will be inserted into the bottom of the <head> section of every page. This is handy for overriding styles or adding analytics code.',
'app_custom_html_disabled_notice' => 'Custom HTML head content is disabled on this settings page to ensure any breaking changes can be reverted.', 'app_custom_html_disabled_notice' => 'Custom HTML head content is disabled on this settings page to ensure any breaking changes can be reverted.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Access system API', 'role_access_api' => 'Access system API',
'role_manage_settings' => 'Manage app settings', 'role_manage_settings' => 'Manage app settings',
'role_export_content' => 'Export content', 'role_export_content' => 'Export content',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Asset Permissions', 'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.', 'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.', 'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Borrador guardado ', 'pages_edit_draft_save_at' => 'Borrador guardado ',
'pages_edit_delete_draft' => 'Borrar borrador', 'pages_edit_delete_draft' => 'Borrar borrador',
'pages_edit_discard_draft' => 'Descartar borrador', 'pages_edit_discard_draft' => 'Descartar borrador',
'pages_edit_switch_to_markdown' => 'Cambiar a Editor Markdown',
'pages_edit_switch_to_markdown_clean' => '(Limpiar Contenido)',
'pages_edit_switch_to_markdown_stable' => '(Contenido Estable)',
'pages_edit_switch_to_wysiwyg' => 'Cambiar a Editor WYSIWYG',
'pages_edit_set_changelog' => 'Ajustar Log de cambios', 'pages_edit_set_changelog' => 'Ajustar Log de cambios',
'pages_edit_enter_changelog_desc' => 'Introduzca una breve descripción de los cambios que ha realizado', 'pages_edit_enter_changelog_desc' => 'Introduzca una breve descripción de los cambios que ha realizado',
'pages_edit_enter_changelog' => 'Entrar al Log de cambios', 'pages_edit_enter_changelog' => 'Entrar al Log de cambios',
'pages_editor_switch_title' => 'Cambiar editor',
'pages_editor_switch_are_you_sure' => '¿Está seguro de que desea cambiar el editor de esta página?',
'pages_editor_switch_consider_following' => 'Considere lo siguiente al cambiar de editor:',
'pages_editor_switch_consideration_a' => 'Una vez guardado, el nuevo editor será utilizado por cualquier usuario en el futuro, incluyendo aquellos que no puedan cambiar el tipo de editor por sí mismos.',
'pages_editor_switch_consideration_b' => 'Esto puede llevar a una pérdida de detalle y sintaxis en ciertas circunstancias.',
'pages_editor_switch_consideration_c' => 'Cambios en etiquetas o en el registro de cambios, realizados desde el último guardado, no persistirán a través de este cambio.',
'pages_save' => 'Guardar página', 'pages_save' => 'Guardar página',
'pages_title' => 'Título de página', 'pages_title' => 'Título de página',
'pages_name' => 'Nombre de página', 'pages_name' => 'Nombre de página',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revisión #:id', 'pages_revisions_numbered' => 'Revisión #:id',
'pages_revisions_numbered_changes' => 'Revisión #:id Cambios', 'pages_revisions_numbered_changes' => 'Revisión #:id Cambios',
'pages_revisions_editor' => 'Tipo de Editor',
'pages_revisions_changelog' => 'Log de cambios', 'pages_revisions_changelog' => 'Log de cambios',
'pages_revisions_changes' => 'Cambios', 'pages_revisions_changes' => 'Cambios',
'pages_revisions_current' => 'Versión actual', 'pages_revisions_current' => 'Versión actual',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Mayor seguridad para subir imágenes', 'app_secure_images' => 'Mayor seguridad para subir imágenes',
'app_secure_images_toggle' => 'Habilitar mayor seguridad en la subida de imágenes', 'app_secure_images_toggle' => 'Habilitar mayor seguridad en la subida de imágenes',
'app_secure_images_desc' => 'Por razones de rendimiento, todas las imágenes son públicas. Esta opción agrega una cadena de texto larga difícil de adivinar. Asegúrese que los índices de directorio no están habilitados para evitar el acceso fácil a las imágenes.', 'app_secure_images_desc' => 'Por razones de rendimiento, todas las imágenes son públicas. Esta opción agrega una cadena de texto larga difícil de adivinar. Asegúrese que los índices de directorio no están habilitados para evitar el acceso fácil a las imágenes.',
'app_editor' => 'Editor de Páginas', 'app_default_editor' => 'Editor de Página por defecto',
'app_editor_desc' => 'Seleccione qué editor se usará por todos los usuarios para editar páginas.', 'app_default_editor_desc' => 'Seleccione qué editor se utilizará por defecto cuando se editen nuevas páginas. Esto se puede anular a nivel de página si los permisos lo permiten.',
'app_custom_html' => 'Contenido de cabecera HTML personalizado', 'app_custom_html' => 'Contenido de cabecera HTML personalizado',
'app_custom_html_desc' => 'Cualquier contenido agregado aquí será insertado al final de la sección <head> de cada página. Esto es útil para sobreescribir estilos o agregar código para analíticas web.', 'app_custom_html_desc' => 'Cualquier contenido agregado aquí será insertado al final de la sección <head> de cada página. Esto es útil para sobreescribir estilos o agregar código para analíticas web.',
'app_custom_html_disabled_notice' => 'El contenido personalizado para la cabecera está deshabilitado en esta página de ajustes para permitir que cualquier cambio que rompa la funcionalidad pueda ser revertido.', 'app_custom_html_disabled_notice' => 'El contenido personalizado para la cabecera está deshabilitado en esta página de ajustes para permitir que cualquier cambio que rompa la funcionalidad pueda ser revertido.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'API de sistema de acceso', 'role_access_api' => 'API de sistema de acceso',
'role_manage_settings' => 'Gestionar ajustes de la aplicación', 'role_manage_settings' => 'Gestionar ajustes de la aplicación',
'role_export_content' => 'Exportar contenido', 'role_export_content' => 'Exportar contenido',
'role_editor_change' => 'Cambiar editor de página',
'role_asset' => 'Permisos de contenido', 'role_asset' => 'Permisos de contenido',
'roles_system_warning' => 'Tenga en cuenta que el acceso a cualquiera de los tres permisos anteriores puede permitir a un usuario alterar sus propios privilegios o los privilegios de otros en el sistema. Sólo asignar roles con estos permisos a usuarios de confianza.', 'roles_system_warning' => 'Tenga en cuenta que el acceso a cualquiera de los tres permisos anteriores puede permitir a un usuario alterar sus propios privilegios o los privilegios de otros en el sistema. Sólo asignar roles con estos permisos a usuarios de confianza.',
'role_asset_desc' => 'Estos permisos controlan el acceso por defecto a los contenidos del sistema. Los permisos de Libros, Capítulos y Páginas sobreescribiran estos permisos.', 'role_asset_desc' => 'Estos permisos controlan el acceso por defecto a los contenidos del sistema. Los permisos de Libros, Capítulos y Páginas sobreescribiran estos permisos.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Borrador guardado el ', 'pages_edit_draft_save_at' => 'Borrador guardado el ',
'pages_edit_delete_draft' => 'Borrar borrador', 'pages_edit_delete_draft' => 'Borrar borrador',
'pages_edit_discard_draft' => 'Descartar borrador', 'pages_edit_discard_draft' => 'Descartar borrador',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Establecer cambios de registro', 'pages_edit_set_changelog' => 'Establecer cambios de registro',
'pages_edit_enter_changelog_desc' => 'Introduzca una breve descripción de los cambios que ha realizado', 'pages_edit_enter_changelog_desc' => 'Introduzca una breve descripción de los cambios que ha realizado',
'pages_edit_enter_changelog' => 'Entrar en cambio de registro', 'pages_edit_enter_changelog' => 'Entrar en cambio de registro',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Guardar página', 'pages_save' => 'Guardar página',
'pages_title' => 'Título de página', 'pages_title' => 'Título de página',
'pages_name' => 'Nombre de página', 'pages_name' => 'Nombre de página',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revisión #:id', 'pages_revisions_numbered' => 'Revisión #:id',
'pages_revisions_numbered_changes' => 'Cambios de Revisión #:id', 'pages_revisions_numbered_changes' => 'Cambios de Revisión #:id',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Registro de cambios', 'pages_revisions_changelog' => 'Registro de cambios',
'pages_revisions_changes' => 'Cambios', 'pages_revisions_changes' => 'Cambios',
'pages_revisions_current' => 'Versión actual', 'pages_revisions_current' => 'Versión actual',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => '¿Habilitar mayor seguridad para subir imágenes?', 'app_secure_images' => '¿Habilitar mayor seguridad para subir imágenes?',
'app_secure_images_toggle' => 'Habilitar seguridad alta para subir imágenes', 'app_secure_images_toggle' => 'Habilitar seguridad alta para subir imágenes',
'app_secure_images_desc' => 'Por razones de rendimiento, todas las imágenes son públicas. Esta opción agrega una cadena larga difícil de adivinar, asegúrese que los índices de directorios no están habilitados para prevenir el acceso fácil a las imágenes.', 'app_secure_images_desc' => 'Por razones de rendimiento, todas las imágenes son públicas. Esta opción agrega una cadena larga difícil de adivinar, asegúrese que los índices de directorios no están habilitados para prevenir el acceso fácil a las imágenes.',
'app_editor' => 'Editor de página', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Seleccione cuál editor será usado por todos los usuarios para editar páginas.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Contenido de cabecera HTML personalizable', 'app_custom_html' => 'Contenido de cabecera HTML personalizable',
'app_custom_html_desc' => 'Cualquier contenido agregado aquí será agregado al final de la sección <head> de cada página. Esto es útil para sobreescribir estilos o agregar código para analíticas.', 'app_custom_html_desc' => 'Cualquier contenido agregado aquí será agregado al final de la sección <head> de cada página. Esto es útil para sobreescribir estilos o agregar código para analíticas.',
'app_custom_html_disabled_notice' => 'El contenido personailzado para la cabecera HTML está deshabilitado en esta configuración para garantizar que cualquier cambio importante se pueda revertir.', 'app_custom_html_disabled_notice' => 'El contenido personailzado para la cabecera HTML está deshabilitado en esta configuración para garantizar que cualquier cambio importante se pueda revertir.',
@ -153,6 +153,7 @@ return [
'role_access_api' => 'API de sistema de acceso', 'role_access_api' => 'API de sistema de acceso',
'role_manage_settings' => 'Gestionar ajustes de activos', 'role_manage_settings' => 'Gestionar ajustes de activos',
'role_export_content' => 'Exportar contenido', 'role_export_content' => 'Exportar contenido',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Permisos de activos', 'role_asset' => 'Permisos de activos',
'roles_system_warning' => 'Tenga en cuenta que el acceso a cualquiera de los tres permisos anteriores puede permitir a un usuario modificar sus propios privilegios o los privilegios de otros usuarios en el sistema. Asignar roles con estos permisos sólo a usuarios de comfianza.', 'roles_system_warning' => 'Tenga en cuenta que el acceso a cualquiera de los tres permisos anteriores puede permitir a un usuario modificar sus propios privilegios o los privilegios de otros usuarios en el sistema. Asignar roles con estos permisos sólo a usuarios de comfianza.',
'role_asset_desc' => 'Estos permisos controlan el acceso por defecto a los activos del sistema. Permisos definidos en Libros, Capítulos y Páginas ignorarán estos permisos.', 'role_asset_desc' => 'Estos permisos controlan el acceso por defecto a los activos del sistema. Permisos definidos en Libros, Capítulos y Páginas ignorarán estos permisos.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Mustand salvestatud ', 'pages_edit_draft_save_at' => 'Mustand salvestatud ',
'pages_edit_delete_draft' => 'Kustuta mustand', 'pages_edit_delete_draft' => 'Kustuta mustand',
'pages_edit_discard_draft' => 'Loobu mustandist', 'pages_edit_discard_draft' => 'Loobu mustandist',
'pages_edit_switch_to_markdown' => 'Kasuta Markdown redaktorit',
'pages_edit_switch_to_markdown_clean' => '(Puhas sisu)',
'pages_edit_switch_to_markdown_stable' => '(Stabiilne sisu)',
'pages_edit_switch_to_wysiwyg' => 'Kasuta WYSIWYG redaktorit',
'pages_edit_set_changelog' => 'Muudatuste logi', 'pages_edit_set_changelog' => 'Muudatuste logi',
'pages_edit_enter_changelog_desc' => 'Sisesta tehtud muudatuste lühikirjeldus', 'pages_edit_enter_changelog_desc' => 'Sisesta tehtud muudatuste lühikirjeldus',
'pages_edit_enter_changelog' => 'Salvesta muudatuste logi', 'pages_edit_enter_changelog' => 'Salvesta muudatuste logi',
'pages_editor_switch_title' => 'Vaheta redaktorit',
'pages_editor_switch_are_you_sure' => 'Kas oled kindel, et soovid selle lehe redaktorit muuta?',
'pages_editor_switch_consider_following' => 'Redaktori muutmisel pea meeles järgnevat:',
'pages_editor_switch_consideration_a' => 'Pärast salvestamist kasutatakse valitud redaktorit ka tulevikus, sh. olukordades, kus ei pruugi olla võimalik redaktori tüüpi muuta.',
'pages_editor_switch_consideration_b' => 'See võib teatud olukordades põhjustada detailide ja süntaksi kaotsiminekut.',
'pages_editor_switch_consideration_c' => 'Viimasest salvestamisest saadik tehtud siltide ja muudatuste logi muudatused ei jää alles.',
'pages_save' => 'Salvesta leht', 'pages_save' => 'Salvesta leht',
'pages_title' => 'Lehe pealkiri', 'pages_title' => 'Lehe pealkiri',
'pages_name' => 'Lehe nimetus', 'pages_name' => 'Lehe nimetus',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Redaktsioon #:id', 'pages_revisions_numbered' => 'Redaktsioon #:id',
'pages_revisions_numbered_changes' => 'Redaktsiooni #:id muudatused', 'pages_revisions_numbered_changes' => 'Redaktsiooni #:id muudatused',
'pages_revisions_editor' => 'Redaktori tüüp',
'pages_revisions_changelog' => 'Muudatuste ajalugu', 'pages_revisions_changelog' => 'Muudatuste ajalugu',
'pages_revisions_changes' => 'Muudatused', 'pages_revisions_changes' => 'Muudatused',
'pages_revisions_current' => 'Praegune versioon', 'pages_revisions_current' => 'Praegune versioon',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Turvalisem piltide üleslaadimine', 'app_secure_images' => 'Turvalisem piltide üleslaadimine',
'app_secure_images_toggle' => 'Lülita sisse turvalisem piltide üleslaadimine', 'app_secure_images_toggle' => 'Lülita sisse turvalisem piltide üleslaadimine',
'app_secure_images_desc' => 'Jõudluse kaalutlustel on kõik pildifailid avalikult kättesaadavad. See valik lisab pildifailide URL-ide ette juhugenereeritud, raskesti arvatava stringi. Ligipääsu piiramiseks veendu, et kataloogide indekseerimine ei oleks lubatud.', 'app_secure_images_desc' => 'Jõudluse kaalutlustel on kõik pildifailid avalikult kättesaadavad. See valik lisab pildifailide URL-ide ette juhugenereeritud, raskesti arvatava stringi. Ligipääsu piiramiseks veendu, et kataloogide indekseerimine ei oleks lubatud.',
'app_editor' => 'Redaktor', 'app_default_editor' => 'Vaikimisi lehe redaktor',
'app_editor_desc' => 'Vali, millist redaktorit kasutajad lehtede muutmiseks kasutavad.', 'app_default_editor_desc' => 'Vali, millist redaktorit vaikimisi uute lehtede jaoks kasutada. Seda valikut saab õiguste olemasolul iga lehe jaoks eraldi muuta.',
'app_custom_html' => 'Kohandatud HTML päise sisu', 'app_custom_html' => 'Kohandatud HTML päise sisu',
'app_custom_html_desc' => 'Siia lisatud sisu lisatakse iga lehe <head> sektsiooni lõppu. See võimaldab stiile üle laadida või lisada analüütika koodi.', 'app_custom_html_desc' => 'Siia lisatud sisu lisatakse iga lehe <head> sektsiooni lõppu. See võimaldab stiile üle laadida või lisada analüütika koodi.',
'app_custom_html_disabled_notice' => 'Kohandatud HTML päise sisu on sellel lehel välja lülitatud, et probleemseid muudatusi saaks tagasi võtta.', 'app_custom_html_disabled_notice' => 'Kohandatud HTML päise sisu on sellel lehel välja lülitatud, et probleemseid muudatusi saaks tagasi võtta.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Süsteemi API ligipääs', 'role_access_api' => 'Süsteemi API ligipääs',
'role_manage_settings' => 'Rakenduse seadete haldamine', 'role_manage_settings' => 'Rakenduse seadete haldamine',
'role_export_content' => 'Sisu eksport', 'role_export_content' => 'Sisu eksport',
'role_editor_change' => 'Lehe redaktori muutmine',
'role_asset' => 'Sisu õigused', 'role_asset' => 'Sisu õigused',
'roles_system_warning' => 'Pane tähele, et ülalolevad kolm õigust võimaldavad kasutajal enda või teiste kasutajate õiguseid muuta. Määra nende õigustega roll ainult usaldusväärsetele kasutajatele.', 'roles_system_warning' => 'Pane tähele, et ülalolevad kolm õigust võimaldavad kasutajal enda või teiste kasutajate õiguseid muuta. Määra nende õigustega roll ainult usaldusväärsetele kasutajatele.',
'role_asset_desc' => 'Need load kontrollivad vaikimisi ligipääsu süsteemis olevale sisule. Raamatute, peatükkide ja lehtede õigused rakenduvad esmajärjekorras.', 'role_asset_desc' => 'Need load kontrollivad vaikimisi ligipääsu süsteemis olevale sisule. Raamatute, peatükkide ja lehtede õigused rakenduvad esmajärjekorras.',

View File

@ -24,7 +24,7 @@ return [
'width' => 'Zabalera', 'width' => 'Zabalera',
'height' => 'Altuera', 'height' => 'Altuera',
'More' => 'Gehiago', 'More' => 'Gehiago',
'select' => 'Select...', 'select' => 'Aukeratu...',
// Toolbar // Toolbar
'formats' => 'Formatuak', 'formats' => 'Formatuak',
@ -53,33 +53,33 @@ return [
'align_left' => 'Lerrokatu ezkerrean', 'align_left' => 'Lerrokatu ezkerrean',
'align_center' => 'Lerrokatu erdian', 'align_center' => 'Lerrokatu erdian',
'align_right' => 'Lerrokatu eskuinean', 'align_right' => 'Lerrokatu eskuinean',
'align_justify' => 'Justify', 'align_justify' => 'Justifikatuta',
'list_bullet' => 'Buletdun zerrenda', 'list_bullet' => 'Buletdun zerrenda',
'list_numbered' => 'Zenbakitutako zerrenda', 'list_numbered' => 'Zenbakitutako zerrenda',
'list_task' => 'Task list', 'list_task' => 'Zereginen zerrenda',
'indent_increase' => 'Handitu koska', 'indent_increase' => 'Handitu koska',
'indent_decrease' => 'Txikitu koska', 'indent_decrease' => 'Txikitu koska',
'table' => 'Taula', 'table' => 'Taula',
'insert_image' => 'Irudia txertatu', 'insert_image' => 'Irudia txertatu',
'insert_image_title' => 'Insert/Edit Image', 'insert_image_title' => 'Aldatu/Txertatu irudia',
'insert_link' => 'Insert/edit link', 'insert_link' => 'Txertatu/aldatu esteka',
'insert_link_title' => 'Insert/Edit Link', 'insert_link_title' => 'Txertatu/Aldatu esteka',
'insert_horizontal_line' => 'Insert horizontal line', 'insert_horizontal_line' => 'Txertatu linea horizontala',
'insert_code_block' => 'Insert code block', 'insert_code_block' => 'Txertatu kode-blokea',
'insert_drawing' => 'Insert/edit drawing', 'insert_drawing' => 'Txertatu marrazki berria',
'drawing_manager' => 'Drawing manager', 'drawing_manager' => 'Marrazki kudeaketa',
'insert_media' => 'Insert/edit media', 'insert_media' => 'Txertatu/aldatu media',
'insert_media_title' => 'Insert/Edit Media', 'insert_media_title' => 'Aldatu/Txertatu irudia',
'clear_formatting' => 'Clear formatting', 'clear_formatting' => 'Garbitu formatua',
'source_code' => 'Source code', 'source_code' => 'Iturburu kodea',
'source_code_title' => 'Source Code', 'source_code_title' => 'Iturburu kodea',
'fullscreen' => 'Fullscreen', 'fullscreen' => 'Pantaila osoa',
'image_options' => 'Image options', 'image_options' => 'Irudiaren aukerak',
// Tables // Tables
'table_properties' => 'Table properties', 'table_properties' => 'Taularen propietateak',
'table_properties_title' => 'Table Properties', 'table_properties_title' => 'Taularen propietateak',
'delete_table' => 'Delete table', 'delete_table' => 'Ezabatu taula',
'insert_row_before' => 'Insert row before', 'insert_row_before' => 'Insert row before',
'insert_row_after' => 'Insert row after', 'insert_row_after' => 'Insert row after',
'delete_row' => 'Delete row', 'delete_row' => 'Delete row',

View File

@ -29,184 +29,194 @@ return [
'my_recently_viewed' => 'Nik Ikusitako azkenak', 'my_recently_viewed' => 'Nik Ikusitako azkenak',
'my_most_viewed_favourites' => 'Nire gehien ikusitako gogokoak', 'my_most_viewed_favourites' => 'Nire gehien ikusitako gogokoak',
'my_favourites' => 'Nire Gogokoenak', 'my_favourites' => 'Nire Gogokoenak',
'no_pages_viewed' => 'You have not viewed any pages', 'no_pages_viewed' => 'Ez daukazu ikusiriko orririk',
'no_pages_recently_created' => 'Ez da orrialderik sortu azkenaldian', 'no_pages_recently_created' => 'Ez da orrialderik sortu azkenaldian',
'no_pages_recently_updated' => 'Ez da orrialderik aldatu azkenaldian', 'no_pages_recently_updated' => 'Ez da orrialderik aldatu azkenaldian',
'export' => 'Esportatu', 'export' => 'Esportatu',
'export_html' => 'Contained Web File', 'export_html' => 'Daukan web artxiboa',
'export_pdf' => 'PDF fitxategia', 'export_pdf' => 'PDF fitxategia',
'export_text' => 'Testu lauko fitxategiak', 'export_text' => 'Testu lauko fitxategiak',
'export_md' => 'Markdown File', 'export_md' => 'Markdown fitxategia',
// Permissions and restrictions // Permissions and restrictions
'permissions' => 'Baimenak', 'permissions' => 'Baimenak',
'permissions_intro' => 'Once enabled, These permissions will take priority over any set role permissions.', 'permissions_intro' => 'Behin hau aktibatuta, baimen hauek lehentasuna izango dute beste edozein rol-engainetik.',
'permissions_enable' => 'Baimena pertsonalizatuak Gaitu', 'permissions_enable' => 'Baimena pertsonalizatuak Gaitu',
'permissions_save' => 'Gorde baimenak', 'permissions_save' => 'Gorde baimenak',
'permissions_owner' => 'Jabea', 'permissions_owner' => 'Jabea',
// Search // Search
'search_results' => 'Bilaketaren emaitzak', 'search_results' => 'Bilaketaren emaitzak',
'search_total_results_found' => ':count result found|:count total results found', 'search_total_results_found' => ':count emaitza aurkitu dira|:count emaitza aurkitu dira guztira',
'search_clear' => 'Bilaketa testua garbitu', 'search_clear' => 'Bilaketa testua garbitu',
'search_no_pages' => 'Ez da orririk aurkitu zure bilaketan', 'search_no_pages' => 'Ez da orririk aurkitu zure bilaketan',
'search_for_term' => 'Search for :term', 'search_for_term' => 'Bilatu honen arabera :term',
'search_more' => 'Emaitza gehiago', 'search_more' => 'Emaitza gehiago',
'search_advanced' => 'Bilaketa aurreratua', 'search_advanced' => 'Bilaketa aurreratua',
'search_terms' => 'Bilaketa-hitza', 'search_terms' => 'Bilaketa-hitza',
'search_content_type' => 'Eduki Mota', 'search_content_type' => 'Eduki Mota',
'search_exact_matches' => 'Bat etortze zehatza', 'search_exact_matches' => 'Bat etortze zehatza',
'search_tags' => 'Tag Searches', 'search_tags' => 'Etiketa bilaketak',
'search_options' => 'Aukerak', 'search_options' => 'Aukerak',
'search_viewed_by_me' => 'Nik ikusiak', 'search_viewed_by_me' => 'Nik ikusiak',
'search_not_viewed_by_me' => 'Nik ikusi ez ditudanak', 'search_not_viewed_by_me' => 'Nik ikusi ez ditudanak',
'search_permissions_set' => 'Baimenak', 'search_permissions_set' => 'Baimenak',
'search_created_by_me' => 'Created by me', 'search_created_by_me' => 'Nik sortuak',
'search_updated_by_me' => 'Updated by me', 'search_updated_by_me' => 'Nik eguneratuak',
'search_owned_by_me' => 'Owned by me', 'search_owned_by_me' => 'Nire jabetazkoak',
'search_date_options' => 'Date Options', 'search_date_options' => 'Data aukerak',
'search_updated_before' => 'Updated before', 'search_updated_before' => 'Aurretik eguneratuak',
'search_updated_after' => 'Updated after', 'search_updated_after' => 'Ondoren eguneratuak',
'search_created_before' => 'Created before', 'search_created_before' => 'Aurretik sortuak',
'search_created_after' => 'Created after', 'search_created_after' => 'Ondoren sortuak',
'search_set_date' => 'Set Date', 'search_set_date' => 'Data finkatu',
'search_update' => 'Update Search', 'search_update' => 'Eguneratu bilaketa',
// Shelves // Shelves
'shelf' => 'Shelf', 'shelf' => 'Apalategia',
'shelves' => 'Shelves', 'shelves' => 'Apalategiak',
'x_shelves' => ':count Shelf|:count Shelves', 'x_shelves' => ':count Apalategi|:count Apalategi',
'shelves_long' => 'Bookshelves', 'shelves_long' => 'Liburu-Apalategi',
'shelves_empty' => 'No shelves have been created', 'shelves_empty' => 'Ez da inolako apalategirik sortu',
'shelves_create' => 'Create New Shelf', 'shelves_create' => 'Apalategi berria sortu',
'shelves_popular' => 'Popular Shelves', 'shelves_popular' => 'Apalategi esanguratsuak',
'shelves_new' => 'New Shelves', 'shelves_new' => 'Apalategi berriak',
'shelves_new_action' => 'New Shelf', 'shelves_new_action' => 'Apalategi berria',
'shelves_popular_empty' => 'The most popular shelves will appear here.', 'shelves_popular_empty' => 'Apalategi ikusienak hemen agertuko dira.',
'shelves_new_empty' => 'The most recently created shelves will appear here.', 'shelves_new_empty' => 'Berriki sorturiko apalategiak hemen agertuko dira.',
'shelves_save' => 'Save Shelf', 'shelves_save' => 'Gorde apalategia',
'shelves_books' => 'Books on this shelf', 'shelves_books' => 'Apalategi honetako liburuak',
'shelves_add_books' => 'Add books to this shelf', 'shelves_add_books' => 'Gehitu liburuak apalategi honetara',
'shelves_drag_books' => 'Drag books here to add them to this shelf', 'shelves_drag_books' => 'Bota hona liburuak apalategi honetara gehitzeko',
'shelves_empty_contents' => 'This shelf has no books assigned to it', 'shelves_empty_contents' => 'Apalategi honek ez dauka libururik',
'shelves_edit_and_assign' => 'Edit shelf to assign books', 'shelves_edit_and_assign' => 'Apalategia editatu liburuak gehitzeko',
'shelves_edit_named' => 'Edit Bookshelf :name', 'shelves_edit_named' => ':name liburu-apalategia editatu',
'shelves_edit' => 'Edit Bookshelf', 'shelves_edit' => 'Liburu-apalategia editatu',
'shelves_delete' => 'Delete Bookshelf', 'shelves_delete' => 'Apalategia ezabatu',
'shelves_delete_named' => 'Delete Bookshelf :name', 'shelves_delete_named' => ':name apalategia ezabatu',
'shelves_delete_explain' => "This will delete the bookshelf with the name ':name'. Contained books will not be deleted.", 'shelves_delete_explain' => "':name' apalategia ezabatuko du ekintza honek. bertan dauden liburuak ez dira ezabatuko.",
'shelves_delete_confirmation' => 'Are you sure you want to delete this bookshelf?', 'shelves_delete_confirmation' => 'Ziur zaude apalategi hau ezabatu nahi duzula?',
'shelves_permissions' => 'Bookshelf Permissions', 'shelves_permissions' => 'Apalategi baimenak',
'shelves_permissions_updated' => 'Bookshelf Permissions Updated', 'shelves_permissions_updated' => 'Apalategi baimenak eguneratuta',
'shelves_permissions_active' => 'Bookshelf Permissions Active', 'shelves_permissions_active' => 'Apalategi baimenak aktibatuta',
'shelves_permissions_cascade_warning' => 'Permissions on bookshelves do not automatically cascade to contained books. This is because a book can exist on multiple shelves. Permissions can however be copied down to child books using the option found below.', 'shelves_permissions_cascade_warning' => 'Permissions on bookshelves do not automatically cascade to contained books. This is because a book can exist on multiple shelves. Permissions can however be copied down to child books using the option found below.',
'shelves_copy_permissions_to_books' => 'Copy Permissions to Books', 'shelves_copy_permissions_to_books' => 'Kopiatu baimenak liburura',
'shelves_copy_permissions' => 'Copy Permissions', 'shelves_copy_permissions' => 'Gorde baimenak',
'shelves_copy_permissions_explain' => 'This will apply the current permission settings of this bookshelf to all books contained within. Before activating, ensure any changes to the permissions of this bookshelf have been saved.', 'shelves_copy_permissions_explain' => 'This will apply the current permission settings of this bookshelf to all books contained within. Before activating, ensure any changes to the permissions of this bookshelf have been saved.',
'shelves_copy_permission_success' => 'Bookshelf permissions copied to :count books', 'shelves_copy_permission_success' => 'Apalategi baimenak :count liburutan kopiatuta',
// Books // Books
'book' => 'Book', 'book' => 'Liburua',
'books' => 'Books', 'books' => 'Liburuak',
'x_books' => ':count Book|:count Books', 'x_books' => ':count Liburu|:count Liburu',
'books_empty' => 'Ez da orrialderik sortu', 'books_empty' => 'Ez da orrialderik sortu',
'books_popular' => 'Popular Books', 'books_popular' => 'Liburu ikusienak',
'books_recent' => 'Azken liburuak', 'books_recent' => 'Azken liburuak',
'books_new' => 'Liburu berriak', 'books_new' => 'Liburu berriak',
'books_new_action' => 'Liburu berria', 'books_new_action' => 'Liburu berria',
'books_popular_empty' => 'The most popular books will appear here.', 'books_popular_empty' => 'Apalategi ikusienak hemen agertuko dira.',
'books_new_empty' => 'The most recently created books will appear here.', 'books_new_empty' => 'Berriki sorturiko apalategiak hemen agertuko dira.',
'books_create' => 'Liburu berria sortu', 'books_create' => 'Liburu berria sortu',
'books_delete' => 'Liburua ezabatu', 'books_delete' => 'Liburua ezabatu',
'books_delete_named' => 'Delete Book :bookName', 'books_delete_named' => ':bookName liburua ezabatuta',
'books_delete_explain' => 'This will delete the book with the name \':bookName\'. All pages and chapters will be removed.', 'books_delete_explain' => 'Honek \':bookName\' liburua ezabatuko du. bere orrialde eta kapitulu guztiak ezabatuak izango dira.',
'books_delete_confirmation' => 'Ziur zaude liburu hau ezabatu nahi duzula?', 'books_delete_confirmation' => 'Ziur zaude liburu hau ezabatu nahi duzula?',
'books_edit' => 'Editatu liburua', 'books_edit' => 'Editatu liburua',
'books_edit_named' => 'Edit Book :bookName', 'books_edit_named' => 'Editatu :bookName liburua',
'books_form_book_name' => 'Liburu izena', 'books_form_book_name' => 'Liburu izena',
'books_save' => 'Save Book', 'books_save' => 'Gorde Liburua',
'books_permissions' => 'Book Permissions', 'books_permissions' => 'Liburu baimenak',
'books_permissions_updated' => 'Book Permissions Updated', 'books_permissions_updated' => 'Liburu baimenak eguneratuta',
'books_empty_contents' => 'No pages or chapters have been created for this book.', 'books_empty_contents' => 'Ez da orri edo kapitulurik sortu liburu honentzat.',
'books_empty_create_page' => 'Create a new page', 'books_empty_create_page' => 'Sortu orrialde berria',
'books_empty_sort_current_book' => 'Sort the current book', 'books_empty_sort_current_book' => 'Ordenatu uneko liburu hau',
'books_empty_add_chapter' => 'Kapitulu berria gehitu', 'books_empty_add_chapter' => 'Kapitulu berria gehitu',
'books_permissions_active' => 'Book Permissions Active', 'books_permissions_active' => 'Liburu baimenak aktibatuta',
'books_search_this' => 'Bilatu liburu hau', 'books_search_this' => 'Bilatu liburu hau',
'books_navigation' => 'Book Navigation', 'books_navigation' => 'Liburu nabigazioa',
'books_sort' => 'Sort Book Contents', 'books_sort' => 'Ordenatu liburu edukiak',
'books_sort_named' => 'Sort Book :bookName', 'books_sort_named' => 'Ordenatu :bookName liburua',
'books_sort_name' => 'Ordenatu izenaren arabera', 'books_sort_name' => 'Ordenatu izenaren arabera',
'books_sort_created' => 'Ordenatu argitaratze-dataren arabera', 'books_sort_created' => 'Ordenatu argitaratze-dataren arabera',
'books_sort_updated' => 'Sort by Updated Date', 'books_sort_updated' => 'Ordenatu aldaketa-dataren arabera',
'books_sort_chapters_first' => 'Chapters First', 'books_sort_chapters_first' => 'Lehen kapitulua',
'books_sort_chapters_last' => 'Chapters Last', 'books_sort_chapters_last' => 'Azken kapitulua',
'books_sort_show_other' => 'Show Other Books', 'books_sort_show_other' => 'Erakutsi beste liburuak',
'books_sort_save' => 'Save New Order', 'books_sort_save' => 'Gorde agindu berria',
'books_copy' => 'Copy Book', 'books_copy' => 'Kopiatu liburua',
'books_copy_success' => 'Book successfully copied', 'books_copy_success' => 'Ondo kopiatu da',
// Chapters // Chapters
'chapter' => 'Kapitulua', 'chapter' => 'Kapitulua',
'chapters' => 'Kapituluak', 'chapters' => 'Kapituluak',
'x_chapters' => ':count Chapter|:count Chapters', 'x_chapters' => ':count Kapitulu|:count Kapitulu',
'chapters_popular' => 'Popular Chapters', 'chapters_popular' => 'Kapitulu ikusienak',
'chapters_new' => 'New Chapter', 'chapters_new' => 'Kopiatu kapitulua',
'chapters_create' => 'Create New Chapter', 'chapters_create' => 'Sortu kapitulu berria',
'chapters_delete' => 'Kapitulua ezabatu', 'chapters_delete' => 'Kapitulua ezabatu',
'chapters_delete_named' => 'Delete Chapter :chapterName', 'chapters_delete_named' => ':chapterName kapitulua ezabatu',
'chapters_delete_explain' => 'This will delete the chapter with the name \':chapterName\'. All pages that exist within this chapter will also be deleted.', 'chapters_delete_explain' => 'This will delete the chapter with the name \':chapterName\'. All pages that exist within this chapter will also be deleted.',
'chapters_delete_confirm' => 'Ziur kapitulu hau ezabatu nahi duzula?', 'chapters_delete_confirm' => 'Ziur kapitulu hau ezabatu nahi duzula?',
'chapters_edit' => 'Kapitulua aldatu', 'chapters_edit' => 'Kapitulua aldatu',
'chapters_edit_named' => 'Edit Chapter :chapterName', 'chapters_edit_named' => 'Edit Chapter :chapterName',
'chapters_save' => 'Kapitulua gorde', 'chapters_save' => 'Kapitulua gorde',
'chapters_move' => 'Move Chapter', 'chapters_move' => 'Kapitulua mugitu',
'chapters_move_named' => 'Move Chapter :chapterName', 'chapters_move_named' => 'Move Chapter :chapterName',
'chapter_move_success' => 'Chapter moved to :bookName', 'chapter_move_success' => 'Chapter moved to :bookName',
'chapters_copy' => 'Copy Chapter', 'chapters_copy' => 'Kapitulua kopiatu',
'chapters_copy_success' => 'Chapter successfully copied', 'chapters_copy_success' => 'Kapitulua egoki kopiatua',
'chapters_permissions' => 'Chapter Permissions', 'chapters_permissions' => 'Chapter Permissions',
'chapters_empty' => 'No pages are currently in this chapter.', 'chapters_empty' => 'Ez dago orrialderik kapitulu honetan.',
'chapters_permissions_active' => 'Chapter Permissions Active', 'chapters_permissions_active' => 'Chapter Permissions Active',
'chapters_permissions_success' => 'Chapter Permissions Updated', 'chapters_permissions_success' => 'Chapter Permissions Updated',
'chapters_search_this' => 'Search this chapter', 'chapters_search_this' => 'Search this chapter',
// Pages // Pages
'page' => 'Page', 'page' => 'Orria',
'pages' => 'Pages', 'pages' => 'Orriak',
'x_pages' => ':count Page|:count Pages', 'x_pages' => ':count Page|:count Pages',
'pages_popular' => 'Popular Pages', 'pages_popular' => 'Orrialde ikusienak',
'pages_new' => 'New Page', 'pages_new' => 'Orrialde berria',
'pages_attachments' => 'Attachments', 'pages_attachments' => 'Eranskinak',
'pages_navigation' => 'Page Navigation', 'pages_navigation' => 'Nabigazio orrialdea',
'pages_delete' => 'Delete Page', 'pages_delete' => 'Ezabatu orria',
'pages_delete_named' => 'Delete Page :pageName', 'pages_delete_named' => 'Delete Page :pageName',
'pages_delete_draft_named' => 'Delete Draft Page :pageName', 'pages_delete_draft_named' => 'Delete Draft Page :pageName',
'pages_delete_draft' => 'Delete Draft Page', 'pages_delete_draft' => 'Delete Draft Page',
'pages_delete_success' => 'Page deleted', 'pages_delete_success' => 'Orria ezabatua',
'pages_delete_draft_success' => 'Draft page deleted', 'pages_delete_draft_success' => 'Draft page deleted',
'pages_delete_confirm' => 'Are you sure you want to delete this page?', 'pages_delete_confirm' => 'Ziur al zaude orri hau ezabatu nahi duzula?',
'pages_delete_draft_confirm' => 'Are you sure you want to delete this draft page?', 'pages_delete_draft_confirm' => 'Are you sure you want to delete this draft page?',
'pages_editing_named' => 'Editing Page :pageName', 'pages_editing_named' => 'Editing Page :pageName',
'pages_edit_draft_options' => 'Draft Options', 'pages_edit_draft_options' => 'Draft Options',
'pages_edit_save_draft' => 'Save Draft', 'pages_edit_save_draft' => 'Gorde zirriborroa',
'pages_edit_draft' => 'Edit Page Draft', 'pages_edit_draft' => 'Edit Page Draft',
'pages_editing_draft' => 'Editing Draft', 'pages_editing_draft' => 'Editatu zirriborroa',
'pages_editing_page' => 'Editing Page', 'pages_editing_page' => 'Editatu orrialdea',
'pages_edit_draft_save_at' => 'Draft saved at ', 'pages_edit_draft_save_at' => 'Draft saved at ',
'pages_edit_delete_draft' => 'Delete Draft', 'pages_edit_delete_draft' => 'Ezabatu zirriborroa',
'pages_edit_discard_draft' => 'Discard Draft', 'pages_edit_discard_draft' => 'Baztertu zirriborroa',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Set Changelog', 'pages_edit_set_changelog' => 'Set Changelog',
'pages_edit_enter_changelog_desc' => 'Enter a brief description of the changes you\'ve made', 'pages_edit_enter_changelog_desc' => 'Enter a brief description of the changes you\'ve made',
'pages_edit_enter_changelog' => 'Enter Changelog', 'pages_edit_enter_changelog' => 'Enter Changelog',
'pages_save' => 'Save Page', 'pages_editor_switch_title' => 'Switch Editor',
'pages_title' => 'Page Title', 'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_name' => 'Page Name', 'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_md_editor' => 'Editor', 'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_md_preview' => 'Preview', 'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_md_insert_image' => 'Insert Image', 'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Gorde orrialdea',
'pages_title' => 'Orrialdearen titulua',
'pages_name' => 'Orrialdearen izena',
'pages_md_editor' => 'Editorea',
'pages_md_preview' => 'Aurrebista',
'pages_md_insert_image' => 'Txertatu irudia',
'pages_md_insert_link' => 'Insert Entity Link', 'pages_md_insert_link' => 'Insert Entity Link',
'pages_md_insert_drawing' => 'Insert Drawing', 'pages_md_insert_drawing' => 'Txertatu marrazki berria',
'pages_not_in_chapter' => 'Page is not in a chapter', 'pages_not_in_chapter' => 'Page is not in a chapter',
'pages_move' => 'Move Page', 'pages_move' => 'Move Page',
'pages_move_success' => 'Page moved to ":parentName"', 'pages_move_success' => 'Page moved to ":parentName"',
@ -220,22 +230,23 @@ return [
'pages_revisions_named' => 'Page Revisions for :pageName', 'pages_revisions_named' => 'Page Revisions for :pageName',
'pages_revision_named' => 'Page Revision for :pageName', 'pages_revision_named' => 'Page Revision for :pageName',
'pages_revision_restored_from' => 'Restored from #:id; :summary', 'pages_revision_restored_from' => 'Restored from #:id; :summary',
'pages_revisions_created_by' => 'Created By', 'pages_revisions_created_by' => 'Sortzailea',
'pages_revisions_date' => 'Revision Date', 'pages_revisions_date' => 'Berrikuspen data',
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revision #:id', 'pages_revisions_numbered' => 'Revision #:id',
'pages_revisions_numbered_changes' => 'Revision #:id Changes', 'pages_revisions_numbered_changes' => 'Revision #:id Changes',
'pages_revisions_changelog' => 'Changelog', 'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changes' => 'Changes', 'pages_revisions_changelog' => 'Aldaketen erregistroa',
'pages_revisions_current' => 'Current Version', 'pages_revisions_changes' => 'Aldaketak',
'pages_revisions_preview' => 'Preview', 'pages_revisions_current' => 'Uneko bertsioa',
'pages_revisions_restore' => 'Restore', 'pages_revisions_preview' => 'Aurrebista',
'pages_revisions_restore' => 'Berreskuratu',
'pages_revisions_none' => 'This page has no revisions', 'pages_revisions_none' => 'This page has no revisions',
'pages_copy_link' => 'Copy Link', 'pages_copy_link' => 'Copy Link',
'pages_edit_content_link' => 'Edit Content', 'pages_edit_content_link' => 'Editatu edukia',
'pages_permissions_active' => 'Page Permissions Active', 'pages_permissions_active' => 'Page Permissions Active',
'pages_initial_revision' => 'Initial publish', 'pages_initial_revision' => 'Initial publish',
'pages_initial_name' => 'New Page', 'pages_initial_name' => 'Orrialde berria',
'pages_editing_draft_notification' => 'You are currently editing a draft that was last saved :timeDiff.', 'pages_editing_draft_notification' => 'You are currently editing a draft that was last saved :timeDiff.',
'pages_draft_edited_notification' => 'This page has been updated by since that time. It is recommended that you discard this draft.', 'pages_draft_edited_notification' => 'This page has been updated by since that time. It is recommended that you discard this draft.',
'pages_draft_page_changed_since_creation' => 'This page has been updated since this draft was created. It is recommended that you discard this draft or take care not to overwrite any page changes.', 'pages_draft_page_changed_since_creation' => 'This page has been updated since this draft was created. It is recommended that you discard this draft or take care not to overwrite any page changes.',
@ -248,19 +259,19 @@ return [
], ],
'pages_draft_discarded' => 'Draft discarded, The editor has been updated with the current page content', 'pages_draft_discarded' => 'Draft discarded, The editor has been updated with the current page content',
'pages_specific' => 'Specific Page', 'pages_specific' => 'Specific Page',
'pages_is_template' => 'Page Template', 'pages_is_template' => 'Orrialde txantiloia',
// Editor Sidebar // Editor Sidebar
'page_tags' => 'Page Tags', 'page_tags' => 'Orrialde etiketak',
'chapter_tags' => 'Chapter Tags', 'chapter_tags' => 'Kapitulu etiketak',
'book_tags' => 'Book Tags', 'book_tags' => 'Liburu etiketak',
'shelf_tags' => 'Shelf Tags', 'shelf_tags' => 'Apalategi etiketak',
'tag' => 'Tag', 'tag' => 'Etiketa',
'tags' => 'Tags', 'tags' => 'Etiketak',
'tag_name' => 'Tag Name', 'tag_name' => 'Etiketa izena',
'tag_value' => 'Tag Value (Optional)', 'tag_value' => 'Tag Value (Optional)',
'tags_explain' => "Add some tags to better categorise your content. \n You can assign a value to a tag for more in-depth organisation.", 'tags_explain' => "Add some tags to better categorise your content. \n You can assign a value to a tag for more in-depth organisation.",
'tags_add' => 'Add another tag', 'tags_add' => 'Beste bat gehitu',
'tags_remove' => 'Remove this tag', 'tags_remove' => 'Remove this tag',
'tags_usages' => 'Total tag usages', 'tags_usages' => 'Total tag usages',
'tags_assigned_pages' => 'Assigned to Pages', 'tags_assigned_pages' => 'Assigned to Pages',
@ -268,29 +279,29 @@ return [
'tags_assigned_books' => 'Assigned to Books', 'tags_assigned_books' => 'Assigned to Books',
'tags_assigned_shelves' => 'Assigned to Shelves', 'tags_assigned_shelves' => 'Assigned to Shelves',
'tags_x_unique_values' => ':count unique values', 'tags_x_unique_values' => ':count unique values',
'tags_all_values' => 'All values', 'tags_all_values' => 'Balio guztiak',
'tags_view_tags' => 'View Tags', 'tags_view_tags' => 'View Tags',
'tags_view_existing_tags' => 'View existing tags', 'tags_view_existing_tags' => 'View existing tags',
'tags_list_empty_hint' => 'Tags can be assigned via the page editor sidebar or while editing the details of a book, chapter or shelf.', 'tags_list_empty_hint' => 'Tags can be assigned via the page editor sidebar or while editing the details of a book, chapter or shelf.',
'attachments' => 'Attachments', 'attachments' => 'Eranskinak',
'attachments_explain' => 'Upload some files or attach some links to display on your page. These are visible in the page sidebar.', 'attachments_explain' => 'Upload some files or attach some links to display on your page. These are visible in the page sidebar.',
'attachments_explain_instant_save' => 'Changes here are saved instantly.', 'attachments_explain_instant_save' => 'Changes here are saved instantly.',
'attachments_items' => 'Attached Items', 'attachments_items' => 'Atxikiak',
'attachments_upload' => 'Upload File', 'attachments_upload' => 'Kargatu artxiboak',
'attachments_link' => 'Attach Link', 'attachments_link' => 'Attach Link',
'attachments_set_link' => 'Set Link', 'attachments_set_link' => 'Set Link',
'attachments_delete' => 'Are you sure you want to delete this attachment?', 'attachments_delete' => 'Are you sure you want to delete this attachment?',
'attachments_dropzone' => 'Drop files or click here to attach a file', 'attachments_dropzone' => 'Drop files or click here to attach a file',
'attachments_no_files' => 'No files have been uploaded', 'attachments_no_files' => 'Ez da igo fitxategirik',
'attachments_explain_link' => 'You can attach a link if you\'d prefer not to upload a file. This can be a link to another page or a link to a file in the cloud.', 'attachments_explain_link' => 'You can attach a link if you\'d prefer not to upload a file. This can be a link to another page or a link to a file in the cloud.',
'attachments_link_name' => 'Link Name', 'attachments_link_name' => 'Loturaren izena',
'attachment_link' => 'Attachment link', 'attachment_link' => 'Attachment link',
'attachments_link_url' => 'Link to file', 'attachments_link_url' => 'Fitxategiarentzako esteka',
'attachments_link_url_hint' => 'Url of site or file', 'attachments_link_url_hint' => 'Url of site or file',
'attach' => 'Attach', 'attach' => 'Attach',
'attachments_insert_link' => 'Add Attachment Link to Page', 'attachments_insert_link' => 'Add Attachment Link to Page',
'attachments_edit_file' => 'Edit File', 'attachments_edit_file' => 'Edit File',
'attachments_edit_file_name' => 'File Name', 'attachments_edit_file_name' => 'Fitxategi izena',
'attachments_edit_drop_upload' => 'Drop files or click here to upload and overwrite', 'attachments_edit_drop_upload' => 'Drop files or click here to upload and overwrite',
'attachments_order_updated' => 'Attachment order updated', 'attachments_order_updated' => 'Attachment order updated',
'attachments_updated_success' => 'Attachment details updated', 'attachments_updated_success' => 'Attachment details updated',
@ -314,25 +325,25 @@ return [
'profile_not_created_shelves' => ':userName has not created any shelves', 'profile_not_created_shelves' => ':userName has not created any shelves',
// Comments // Comments
'comment' => 'Comment', 'comment' => 'Iruzkina',
'comments' => 'Comments', 'comments' => 'Iruzkinak',
'comment_add' => 'Add Comment', 'comment_add' => 'Iruzkina gehitu',
'comment_placeholder' => 'Leave a comment here', 'comment_placeholder' => 'Utzi iruzkin bat hemen',
'comment_count' => '{0} No Comments|{1} 1 Comment|[2,*] :count Comments', 'comment_count' => '{0} No Comments|{1} 1 Comment|[2,*] :count Comments',
'comment_save' => 'Save Comment', 'comment_save' => 'Iruzkina gorde',
'comment_saving' => 'Saving comment...', 'comment_saving' => 'Saving comment...',
'comment_deleting' => 'Deleting comment...', 'comment_deleting' => 'Deleting comment...',
'comment_new' => 'New Comment', 'comment_new' => 'Iruzkin berria',
'comment_created' => 'commented :createDiff', 'comment_created' => 'commented :createDiff',
'comment_updated' => 'Updated :updateDiff by :username', 'comment_updated' => 'Updated :updateDiff by :username',
'comment_deleted_success' => 'Comment deleted', 'comment_deleted_success' => 'Comment deleted',
'comment_created_success' => 'Comment added', 'comment_created_success' => 'Iruzkina gehituta',
'comment_updated_success' => 'Comment updated', 'comment_updated_success' => 'Iruzkina gehituta',
'comment_delete_confirm' => 'Are you sure you want to delete this comment?', 'comment_delete_confirm' => 'Ziur zaude iruzkin hau ezabatu nahi duzula?',
'comment_in_reply_to' => 'In reply to :commentId', 'comment_in_reply_to' => 'In reply to :commentId',
// Revision // Revision
'revision_delete_confirm' => 'Are you sure you want to delete this revision?', 'revision_delete_confirm' => 'Ziur zaude hau ezabatu nahi duzula?',
'revision_restore_confirm' => 'Are you sure you want to restore this revision? The current page contents will be replaced.', 'revision_restore_confirm' => 'Are you sure you want to restore this revision? The current page contents will be replaced.',
'revision_delete_success' => 'Revision deleted', 'revision_delete_success' => 'Revision deleted',
'revision_cannot_delete_latest' => 'Cannot delete the latest revision.', 'revision_cannot_delete_latest' => 'Cannot delete the latest revision.',

View File

@ -20,10 +20,10 @@ return [
'ldap_cannot_connect' => 'Ezin izan da ldap zerbitzarira konektatu, hasierako konexioak huts egin du', 'ldap_cannot_connect' => 'Ezin izan da ldap zerbitzarira konektatu, hasierako konexioak huts egin du',
'saml_already_logged_in' => 'Saioa aurretik hasita dago', 'saml_already_logged_in' => 'Saioa aurretik hasita dago',
'saml_user_not_registered' => ':name erabiltzailea ez dago erregistratua eta erregistro automatikoa ezgaituta dago', 'saml_user_not_registered' => ':name erabiltzailea ez dago erregistratua eta erregistro automatikoa ezgaituta dago',
'saml_no_email_address' => 'Could not find an email address, for this user, in the data provided by the external authentication system', 'saml_no_email_address' => 'Ezin izan dugu posta helbiderik aurkitu erabiltzaile honentzat, kanpoko autentifikazio zerbitzuak bidalitako datuetan',
'saml_invalid_response_id' => 'The request from the external authentication system is not recognised by a process started by this application. Navigating back after a login could cause this issue.', 'saml_invalid_response_id' => 'Kanpoko egiazkotasun-sistemaren eskaria ez du onartzen aplikazio honek abiarazitako prozesu batek. Loginean atzera egitea izan daiteke arrazoia.',
'saml_fail_authed' => 'Login using :system failed, system did not provide successful authorization', 'saml_fail_authed' => 'Login using :system failed, system did not provide successful authorization',
'oidc_already_logged_in' => 'Already logged in', 'oidc_already_logged_in' => 'Dagoeneko saioa hasita',
'oidc_user_not_registered' => 'The user :name is not registered and automatic registration is disabled', 'oidc_user_not_registered' => 'The user :name is not registered and automatic registration is disabled',
'oidc_no_email_address' => 'Could not find an email address, for this user, in the data provided by the external authentication system', 'oidc_no_email_address' => 'Could not find an email address, for this user, in the data provided by the external authentication system',
'oidc_fail_authed' => 'Login using :system failed, system did not provide successful authorization', 'oidc_fail_authed' => 'Login using :system failed, system did not provide successful authorization',
@ -84,13 +84,13 @@ return [
'empty_comment' => 'Cannot add an empty comment.', 'empty_comment' => 'Cannot add an empty comment.',
// Error pages // Error pages
'404_page_not_found' => 'Page Not Found', '404_page_not_found' => 'Ez da orrialdea aurkitu',
'sorry_page_not_found' => 'Sorry, The page you were looking for could not be found.', 'sorry_page_not_found' => 'Sorry, The page you were looking for could not be found.',
'sorry_page_not_found_permission_warning' => 'If you expected this page to exist, you might not have permission to view it.', 'sorry_page_not_found_permission_warning' => 'If you expected this page to exist, you might not have permission to view it.',
'image_not_found' => 'Image Not Found', 'image_not_found' => 'Irudia Ez da Aurkitu',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.', 'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.', 'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Return to home', 'return_home' => 'Itzuli hasierara',
'error_occurred' => 'Akats bat gertatu da', 'error_occurred' => 'Akats bat gertatu da',
'app_down' => ':appName is down right now', 'app_down' => ':appName is down right now',
'back_soon' => 'It will be back up soon.', 'back_soon' => 'It will be back up soon.',

View File

@ -27,17 +27,17 @@ return [
'app_secure_images' => 'Goi Segurtasuneko irudiak', 'app_secure_images' => 'Goi Segurtasuneko irudiak',
'app_secure_images_toggle' => 'Goi Segurtasuneko irudiak aktibatu', 'app_secure_images_toggle' => 'Goi Segurtasuneko irudiak aktibatu',
'app_secure_images_desc' => 'Antzezpen arrazoiengatik, irudi guztiak publikoak dira. Aukera honek ausazko lokarri bat gehitzen du irudiaren aurrean. Segurtasun-indizeek ezin dute sarrera erraza eragotzi.', 'app_secure_images_desc' => 'Antzezpen arrazoiengatik, irudi guztiak publikoak dira. Aukera honek ausazko lokarri bat gehitzen du irudiaren aurrean. Segurtasun-indizeek ezin dute sarrera erraza eragotzi.',
'app_editor' => 'Orri editorea', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Aukeratu zein editore erabiliko duten erabiltzaile guztiek orriak editatzeko.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'HTML pertsonalizatuko goiburu edukia', 'app_custom_html' => 'HTML pertsonalizatuko goiburu edukia',
'app_custom_html_desc' => 'Hemen sarturiko edozein eduki <head> eremuko behekaldean sartuko da orrialde guztietan. Honek estiloak gainditzeko edo analitika-kodea gehitzeko balio du.', 'app_custom_html_desc' => 'Hemen sarturiko edozein eduki <head> eremuko behekaldean sartuko da orrialde guztietan. Honek estiloak gainditzeko edo analitika-kodea gehitzeko balio du.',
'app_custom_html_disabled_notice' => 'Custom HTML head content is disabled on this settings page to ensure any breaking changes can be reverted.', 'app_custom_html_disabled_notice' => 'HTML edukiera desgaituta dago konfigurazio-orri honetan, edozein aldaketa eten daitekeela bermatzeko.',
'app_logo' => 'Aplikazioaren logoa', 'app_logo' => 'Aplikazioaren logoa',
'app_logo_desc' => 'This image should be 43px in height. <br>Large images will be scaled down.', 'app_logo_desc' => 'Irudi honek 43px izan behar du altueran.<br>Irudi handiagoak txikitu egingo dira.',
'app_primary_color' => 'Aplikazioaren kolore lehenetsia', 'app_primary_color' => 'Aplikazioaren kolore lehenetsia',
'app_primary_color_desc' => 'Sets the primary color for the application including the banner, buttons, and links.', 'app_primary_color_desc' => 'Konfiguratu aplikaziorako kolore nagusia, botoi, banner eta estekak barne.',
'app_homepage' => 'Aplikazioko hasiera orria', 'app_homepage' => 'Aplikazioko hasiera orria',
'app_homepage_desc' => 'Select a view to show on the homepage instead of the default view. Page permissions are ignored for selected pages.', 'app_homepage_desc' => 'Aukeratu hasierako orriko bista, defektuzkoa beharrean. Orrialde baimenak ez dira kontutan hartuko aukeratutako orrialdeentzat.',
'app_homepage_select' => 'Aukeratu Orria', 'app_homepage_select' => 'Aukeratu Orria',
'app_footer_links' => 'Beheko aldeko estekak', 'app_footer_links' => 'Beheko aldeko estekak',
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".', 'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
@ -112,18 +112,18 @@ return [
'recycle_bin_restore_notification' => 'Restored :count total items from the recycle bin.', 'recycle_bin_restore_notification' => 'Restored :count total items from the recycle bin.',
// Audit Log // Audit Log
'audit' => 'Audit Log', 'audit' => 'Auditoretza erregistroak',
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.', 'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
'audit_event_filter' => 'Event Filter', 'audit_event_filter' => 'Gertakari filtroa',
'audit_event_filter_no_filter' => 'Filtrorik ez', 'audit_event_filter_no_filter' => 'Filtrorik ez',
'audit_deleted_item' => 'Deleted Item', 'audit_deleted_item' => 'Ezabatutako edukiak',
'audit_deleted_item_name' => 'Name: :name', 'audit_deleted_item_name' => 'Izena :name',
'audit_table_user' => 'Erabiltzailea', 'audit_table_user' => 'Erabiltzailea',
'audit_table_event' => 'Gertaera', 'audit_table_event' => 'Gertaera',
'audit_table_related' => 'Related Item or Detail', 'audit_table_related' => 'Related Item or Detail',
'audit_table_ip' => 'IP helbidea', 'audit_table_ip' => 'IP helbidea',
'audit_table_date' => 'Azken aktibitate data', 'audit_table_date' => 'Azken aktibitate data',
'audit_date_from' => 'Date Range From', 'audit_date_from' => 'Data tartea',
'audit_date_to' => 'Data tartea', 'audit_date_to' => 'Data tartea',
// Role Settings // Role Settings
@ -131,20 +131,20 @@ return [
'role_user_roles' => 'Erabiltzailearen rola', 'role_user_roles' => 'Erabiltzailearen rola',
'role_create' => 'Rol berria sortu', 'role_create' => 'Rol berria sortu',
'role_create_success' => 'Rola ondo sortu da', 'role_create_success' => 'Rola ondo sortu da',
'role_delete' => 'Delete Role', 'role_delete' => 'Ezabatu Rol-a',
'role_delete_confirm' => 'This will delete the role with the name \':roleName\'.', 'role_delete_confirm' => 'This will delete the role with the name \':roleName\'.',
'role_delete_users_assigned' => 'This role has :userCount users assigned to it. If you would like to migrate the users from this role select a new role below.', 'role_delete_users_assigned' => 'This role has :userCount users assigned to it. If you would like to migrate the users from this role select a new role below.',
'role_delete_no_migration' => "Don't migrate users", 'role_delete_no_migration' => "Ez migratu erabiltzaileak",
'role_delete_sure' => 'Are you sure you want to delete this role?', 'role_delete_sure' => 'Ziur zaude rol hau ezabatu nahi duzula?',
'role_delete_success' => 'Role successfully deleted', 'role_delete_success' => 'Rola ezabatua',
'role_edit' => 'Edit Role', 'role_edit' => 'Editatu rola',
'role_details' => 'Role Details', 'role_details' => 'Ireki xehetasunak',
'role_name' => 'Role Name', 'role_name' => 'Rol izena',
'role_desc' => 'Short Description of Role', 'role_desc' => 'Short Description of Role',
'role_mfa_enforced' => 'Requires Multi-Factor Authentication', 'role_mfa_enforced' => 'Requires Multi-Factor Authentication',
'role_external_auth_id' => 'External Authentication IDs', 'role_external_auth_id' => 'External Authentication IDs',
'role_system' => 'System Permissions', 'role_system' => 'System Permissions',
'role_manage_users' => 'Manage users', 'role_manage_users' => 'Erabiltzaileak kudeatu',
'role_manage_roles' => 'Manage roles & role permissions', 'role_manage_roles' => 'Manage roles & role permissions',
'role_manage_entity_permissions' => 'Manage all book, chapter & page permissions', 'role_manage_entity_permissions' => 'Manage all book, chapter & page permissions',
'role_manage_own_entity_permissions' => 'Manage permissions on own book, chapter & pages', 'role_manage_own_entity_permissions' => 'Manage permissions on own book, chapter & pages',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Sistemako APIra sarrera', 'role_access_api' => 'Sistemako APIra sarrera',
'role_manage_settings' => 'Kudeatu aplikazio ezarpenak', 'role_manage_settings' => 'Kudeatu aplikazio ezarpenak',
'role_export_content' => 'Exportatu edukia', 'role_export_content' => 'Exportatu edukia',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Fitxategi baimenak', 'role_asset' => 'Fitxategi baimenak',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.', 'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.', 'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
@ -178,13 +179,13 @@ return [
'users_password' => 'Erabiltzaile pasahitza', 'users_password' => 'Erabiltzaile pasahitza',
'users_password_desc' => 'Set a password used to log-in to the application. This must be at least 8 characters long.', 'users_password_desc' => 'Set a password used to log-in to the application. This must be at least 8 characters long.',
'users_send_invite_text' => 'You can choose to send this user an invitation email which allows them to set their own password otherwise you can set their password yourself.', 'users_send_invite_text' => 'You can choose to send this user an invitation email which allows them to set their own password otherwise you can set their password yourself.',
'users_send_invite_option' => 'Send user invite email', 'users_send_invite_option' => 'Erabiltzailea gonbidatzeko emaila bidali',
'users_external_auth_id' => 'External Authentication ID', 'users_external_auth_id' => 'Kanpo autentikazioa IDa',
'users_external_auth_id_desc' => 'This is the ID used to match this user when communicating with your external authentication system.', 'users_external_auth_id_desc' => 'This is the ID used to match this user when communicating with your external authentication system.',
'users_password_warning' => 'Only fill the below if you would like to change your password.', 'users_password_warning' => 'Only fill the below if you would like to change your password.',
'users_system_public' => 'This user represents any guest users that visit your instance. It cannot be used to log in but is assigned automatically.', 'users_system_public' => 'This user represents any guest users that visit your instance. It cannot be used to log in but is assigned automatically.',
'users_delete' => 'Ezabatu erabiltzailea', 'users_delete' => 'Ezabatu erabiltzailea',
'users_delete_named' => 'Delete user :userName', 'users_delete_named' => ':userName erabiltzailea ezabatu',
'users_delete_warning' => 'This will fully delete this user with the name \':userName\' from the system.', 'users_delete_warning' => 'This will fully delete this user with the name \':userName\' from the system.',
'users_delete_confirm' => 'Are you sure you want to delete this user?', 'users_delete_confirm' => 'Are you sure you want to delete this user?',
'users_migrate_ownership' => 'Migrate Ownership', 'users_migrate_ownership' => 'Migrate Ownership',
@ -192,7 +193,7 @@ return [
'users_none_selected' => 'Erabiltzailerik ez duzu aukeratu', 'users_none_selected' => 'Erabiltzailerik ez duzu aukeratu',
'users_edit' => 'Erabiltzaile editatu', 'users_edit' => 'Erabiltzaile editatu',
'users_edit_profile' => 'Editatu profila', 'users_edit_profile' => 'Editatu profila',
'users_avatar' => 'User Avatar', 'users_avatar' => 'Erabiltzaile avatarra',
'users_avatar_desc' => 'Select an image to represent this user. This should be approx 256px square.', 'users_avatar_desc' => 'Select an image to represent this user. This should be approx 256px square.',
'users_preferred_language' => 'Hobetsitako hizkuntza', 'users_preferred_language' => 'Hobetsitako hizkuntza',
'users_preferred_language_desc' => 'This option will change the language used for the user-interface of the application. This will not affect any user-created content.', 'users_preferred_language_desc' => 'This option will change the language used for the user-interface of the application. This will not affect any user-created content.',
@ -202,10 +203,10 @@ return [
'users_social_disconnect' => 'Deskonektatu kontua', 'users_social_disconnect' => 'Deskonektatu kontua',
'users_social_connected' => ':socialAccount account was successfully attached to your profile.', 'users_social_connected' => ':socialAccount account was successfully attached to your profile.',
'users_social_disconnected' => ':socialAccount account was successfully disconnected from your profile.', 'users_social_disconnected' => ':socialAccount account was successfully disconnected from your profile.',
'users_api_tokens' => 'API Tokens', 'users_api_tokens' => 'API tokenak',
'users_api_tokens_none' => 'No API tokens have been created for this user', 'users_api_tokens_none' => 'No API tokens have been created for this user',
'users_api_tokens_create' => 'Create Token', 'users_api_tokens_create' => 'Sortu Tokena',
'users_api_tokens_expires' => 'Expires', 'users_api_tokens_expires' => 'Iraungita',
'users_api_tokens_docs' => 'API dokumentazioa', 'users_api_tokens_docs' => 'API dokumentazioa',
'users_mfa' => 'Multi-Factor Authentication', 'users_mfa' => 'Multi-Factor Authentication',
'users_mfa_desc' => 'Setup multi-factor authentication as an extra layer of security for your user account.', 'users_mfa_desc' => 'Setup multi-factor authentication as an extra layer of security for your user account.',
@ -213,7 +214,7 @@ return [
'users_mfa_configure' => 'Configure Methods', 'users_mfa_configure' => 'Configure Methods',
// API Tokens // API Tokens
'user_api_token_create' => 'Create API Token', 'user_api_token_create' => 'Sortu Tokena',
'user_api_token_name' => 'Izena', 'user_api_token_name' => 'Izena',
'user_api_token_name_desc' => 'Give your token a readable name as a future reminder of its intended purpose.', 'user_api_token_name_desc' => 'Give your token a readable name as a future reminder of its intended purpose.',
'user_api_token_expiry' => 'Iraungitze data', 'user_api_token_expiry' => 'Iraungitze data',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'پیش نویس ذخیره شده در', 'pages_edit_draft_save_at' => 'پیش نویس ذخیره شده در',
'pages_edit_delete_draft' => 'حذف پیش نویس', 'pages_edit_delete_draft' => 'حذف پیش نویس',
'pages_edit_discard_draft' => 'دور انداختن پیش نویس', 'pages_edit_discard_draft' => 'دور انداختن پیش نویس',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'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' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'ذخیره صفحه', 'pages_save' => 'ذخیره صفحه',
'pages_title' => 'عنوان صفحه', 'pages_title' => 'عنوان صفحه',
'pages_name' => 'نام صفحه', 'pages_name' => 'نام صفحه',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'تجدید نظر #:id', 'pages_revisions_numbered' => 'تجدید نظر #:id',
'pages_revisions_numbered_changes' => 'بازبینی #:id تغییرات', 'pages_revisions_numbered_changes' => 'بازبینی #:id تغییرات',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'لیست تغییرات', 'pages_revisions_changelog' => 'لیست تغییرات',
'pages_revisions_changes' => 'تغییرات', 'pages_revisions_changes' => 'تغییرات',
'pages_revisions_current' => 'نسخه‌ی جاری', 'pages_revisions_current' => 'نسخه‌ی جاری',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'آپلود تصویر با امنیت بالاتر', 'app_secure_images' => 'آپلود تصویر با امنیت بالاتر',
'app_secure_images_toggle' => 'آپلود تصویر با امنیت بالاتر', 'app_secure_images_toggle' => 'آپلود تصویر با امنیت بالاتر',
'app_secure_images_desc' => 'به دلایل عملکرد، همه تصاویر عمومی هستند. این گزینه یک رشته تصادفی و غیرقابل حدس زدن را در مقابل آدرس های تصویر اضافه می کند. برای جلوگیری از دسترسی آسان، اطمینان حاصل کنید که فهرست های دایرکتوری فعال نیستند.', 'app_secure_images_desc' => 'به دلایل عملکرد، همه تصاویر عمومی هستند. این گزینه یک رشته تصادفی و غیرقابل حدس زدن را در مقابل آدرس های تصویر اضافه می کند. برای جلوگیری از دسترسی آسان، اطمینان حاصل کنید که فهرست های دایرکتوری فعال نیستند.',
'app_editor' => 'ویرایشگر صفحه', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'انتخاب کنید کدام ویرایشگر توسط همه کاربران برای ویرایش صفحات استفاده شود.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'محتوای اصلی HTML سفارشی', 'app_custom_html' => 'محتوای اصلی HTML سفارشی',
'app_custom_html_desc' => 'هر محتوای اضافه شده در اینجا در پایین بخش <head> هر صفحه درج می شود. این برای تغییر سبک ها یا اضافه کردن کد تجزیه و تحلیل مفید است.', 'app_custom_html_desc' => 'هر محتوای اضافه شده در اینجا در پایین بخش <head> هر صفحه درج می شود. این برای تغییر سبک ها یا اضافه کردن کد تجزیه و تحلیل مفید است.',
'app_custom_html_disabled_notice' => 'محتوای سر HTML سفارشی در این صفحه تنظیمات غیرفعال است تا اطمینان حاصل شود که هر گونه تغییر شکسته می تواند برگردانده شود.', 'app_custom_html_disabled_notice' => 'محتوای سر HTML سفارشی در این صفحه تنظیمات غیرفعال است تا اطمینان حاصل شود که هر گونه تغییر شکسته می تواند برگردانده شود.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'دسترسی به API سیستم', 'role_access_api' => 'دسترسی به API سیستم',
'role_manage_settings' => 'تنظیمات برنامه را مدیریت کنید', 'role_manage_settings' => 'تنظیمات برنامه را مدیریت کنید',
'role_export_content' => 'صادرات محتوا', 'role_export_content' => 'صادرات محتوا',
'role_editor_change' => 'Change page editor',
'role_asset' => 'مجوزهای دارایی', 'role_asset' => 'مجوزهای دارایی',
'roles_system_warning' => 'توجه داشته باشید که دسترسی به هر یک از سه مجوز فوق می‌تواند به کاربر اجازه دهد تا امتیازات خود یا امتیازات دیگران را در سیستم تغییر دهد. فقط نقش هایی را با این مجوزها به کاربران مورد اعتماد اختصاص دهید.', 'roles_system_warning' => 'توجه داشته باشید که دسترسی به هر یک از سه مجوز فوق می‌تواند به کاربر اجازه دهد تا امتیازات خود یا امتیازات دیگران را در سیستم تغییر دهد. فقط نقش هایی را با این مجوزها به کاربران مورد اعتماد اختصاص دهید.',
'role_asset_desc' => 'این مجوزها دسترسی پیش‌فرض به دارایی‌های درون سیستم را کنترل می‌کنند. مجوزهای مربوط به کتاب‌ها، فصل‌ها و صفحات این مجوزها را لغو می‌کنند.', 'role_asset_desc' => 'این مجوزها دسترسی پیش‌فرض به دارایی‌های درون سیستم را کنترل می‌کنند. مجوزهای مربوط به کتاب‌ها، فصل‌ها و صفحات این مجوزها را لغو می‌کنند.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Brouillon enregistré le ', 'pages_edit_draft_save_at' => 'Brouillon enregistré le ',
'pages_edit_delete_draft' => 'Supprimer le brouillon', 'pages_edit_delete_draft' => 'Supprimer le brouillon',
'pages_edit_discard_draft' => 'Jeter le brouillon', 'pages_edit_discard_draft' => 'Jeter le brouillon',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Remplir le journal des changements', 'pages_edit_set_changelog' => 'Remplir le journal des changements',
'pages_edit_enter_changelog_desc' => 'Entrez une brève description des changements effectués', 'pages_edit_enter_changelog_desc' => 'Entrez une brève description des changements effectués',
'pages_edit_enter_changelog' => 'Ouvrir le journal des changements', 'pages_edit_enter_changelog' => 'Ouvrir le journal des changements',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Enregistrer la page', 'pages_save' => 'Enregistrer la page',
'pages_title' => 'Titre de la page', 'pages_title' => 'Titre de la page',
'pages_name' => 'Nom de la page', 'pages_name' => 'Nom de la page',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Révision #:id', 'pages_revisions_numbered' => 'Révision #:id',
'pages_revisions_numbered_changes' => 'Modification #:id', 'pages_revisions_numbered_changes' => 'Modification #:id',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Journal des changements', 'pages_revisions_changelog' => 'Journal des changements',
'pages_revisions_changes' => 'Changements', 'pages_revisions_changes' => 'Changements',
'pages_revisions_current' => 'Version actuelle', 'pages_revisions_current' => 'Version actuelle',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Ajout d\'image sécurisé', 'app_secure_images' => 'Ajout d\'image sécurisé',
'app_secure_images_toggle' => 'Activer l\'ajout d\'image sécurisé', 'app_secure_images_toggle' => 'Activer l\'ajout d\'image sécurisé',
'app_secure_images_desc' => 'Pour des questions de performances, toutes les images sont publiques. Cette option ajoute une chaîne aléatoire difficile à deviner dans les URLs des images.', 'app_secure_images_desc' => 'Pour des questions de performances, toutes les images sont publiques. Cette option ajoute une chaîne aléatoire difficile à deviner dans les URLs des images.',
'app_editor' => 'Éditeur des pages', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Sélectionnez l\'éditeur qui sera utilisé pour modifier les pages.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'HTML personnalisé dans l\'en-tête', 'app_custom_html' => 'HTML personnalisé dans l\'en-tête',
'app_custom_html_desc' => 'Le contenu inséré ici sera ajouté en bas de la balise <head> de toutes les pages. Vous pouvez l\'utiliser pour ajouter du CSS personnalisé ou un tracker analytique.', 'app_custom_html_desc' => 'Le contenu inséré ici sera ajouté en bas de la balise <head> de toutes les pages. Vous pouvez l\'utiliser pour ajouter du CSS personnalisé ou un tracker analytique.',
'app_custom_html_disabled_notice' => 'Le contenu de l\'en-tête HTML personnalisé est désactivé sur cette page de paramètres pour garantir que les modifications les plus récentes puissent être annulées.', 'app_custom_html_disabled_notice' => 'Le contenu de l\'en-tête HTML personnalisé est désactivé sur cette page de paramètres pour garantir que les modifications les plus récentes puissent être annulées.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Accès à l\'API du système', 'role_access_api' => 'Accès à l\'API du système',
'role_manage_settings' => 'Gérer les préférences de l\'application', 'role_manage_settings' => 'Gérer les préférences de l\'application',
'role_export_content' => 'Exporter le contenu', 'role_export_content' => 'Exporter le contenu',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Permissions des ressources', 'role_asset' => 'Permissions des ressources',
'roles_system_warning' => 'Sachez que l\'accès à l\'une des trois permissions ci-dessus peut permettre à un utilisateur de modifier ses propres privilèges ou les privilèges des autres utilisateurs du système. N\'attribuez uniquement des rôles avec ces permissions qu\'à des utilisateurs de confiance.', 'roles_system_warning' => 'Sachez que l\'accès à l\'une des trois permissions ci-dessus peut permettre à un utilisateur de modifier ses propres privilèges ou les privilèges des autres utilisateurs du système. N\'attribuez uniquement des rôles avec ces permissions qu\'à des utilisateurs de confiance.',
'role_asset_desc' => 'Ces permissions contrôlent l\'accès par défaut des ressources dans le système. Les permissions dans les livres, les chapitres et les pages ignoreront ces permissions', 'role_asset_desc' => 'Ces permissions contrôlent l\'accès par défaut des ressources dans le système. Les permissions dans les livres, les chapitres et les pages ignoreront ces permissions',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'טיוטה נשמרה ב ', 'pages_edit_draft_save_at' => 'טיוטה נשמרה ב ',
'pages_edit_delete_draft' => 'מחק טיוטה', 'pages_edit_delete_draft' => 'מחק טיוטה',
'pages_edit_discard_draft' => 'התעלם מהטיוטה', 'pages_edit_discard_draft' => 'התעלם מהטיוטה',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'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' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'שמור דף', 'pages_save' => 'שמור דף',
'pages_title' => 'כותרת דף', 'pages_title' => 'כותרת דף',
'pages_name' => 'שם הדף', 'pages_name' => 'שם הדף',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'נוסח #:id', 'pages_revisions_numbered' => 'נוסח #:id',
'pages_revisions_numbered_changes' => 'שינויי נוסח #:id', 'pages_revisions_numbered_changes' => 'שינויי נוסח #:id',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'יומן שינויים', 'pages_revisions_changelog' => 'יומן שינויים',
'pages_revisions_changes' => 'שינויים', 'pages_revisions_changes' => 'שינויים',
'pages_revisions_current' => 'גירסא נוכחית', 'pages_revisions_current' => 'גירסא נוכחית',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'העלאת תמונות מאובטחת', 'app_secure_images' => 'העלאת תמונות מאובטחת',
'app_secure_images_toggle' => 'אפשר העלאת תמונות מאובטחת', 'app_secure_images_toggle' => 'אפשר העלאת תמונות מאובטחת',
'app_secure_images_desc' => 'משיקולי ביצועים, כל התמונות הינן ציבוריות. אפשרות זו מוסיפה מחרוזת אקראית שקשה לנחש לכל כתובת של תמונה. אנא ודא שאפשרות הצגת תוכן התיקייה מבוטל.', 'app_secure_images_desc' => 'משיקולי ביצועים, כל התמונות הינן ציבוריות. אפשרות זו מוסיפה מחרוזת אקראית שקשה לנחש לכל כתובת של תמונה. אנא ודא שאפשרות הצגת תוכן התיקייה מבוטל.',
'app_editor' => 'עורך הדפים', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'בחר באמצעות איזה עורך תתבצע עריכת הדפים', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'HTML מותאם אישית לחלק העליון', 'app_custom_html' => 'HTML מותאם אישית לחלק העליון',
'app_custom_html_desc' => 'כל קוד שיתווסף כאן, יופיע בתחתית תגית ה head של כל דף. חלק זה שימושי על מנת להגדיר עיצובי CSS והתקנת קוד Analytics', 'app_custom_html_desc' => 'כל קוד שיתווסף כאן, יופיע בתחתית תגית ה head של כל דף. חלק זה שימושי על מנת להגדיר עיצובי CSS והתקנת קוד Analytics',
'app_custom_html_disabled_notice' => 'קוד HTML מותאם מבוטל בדף ההגדרות על מנת לוודא ששינויים שגורמים לבעיה יוכלו להיות מבוטלים לאחר מכן', 'app_custom_html_disabled_notice' => 'קוד HTML מותאם מבוטל בדף ההגדרות על מנת לוודא ששינויים שגורמים לבעיה יוכלו להיות מבוטלים לאחר מכן',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'גש ל-API המערכת', 'role_access_api' => 'גש ל-API המערכת',
'role_manage_settings' => 'ניהול הגדרות יישום', 'role_manage_settings' => 'ניהול הגדרות יישום',
'role_export_content' => 'Export content', 'role_export_content' => 'Export content',
'role_editor_change' => 'Change page editor',
'role_asset' => 'הרשאות משאבים', 'role_asset' => 'הרשאות משאבים',
'roles_system_warning' => 'שימו לב לכך שגישה לכל אחת משלושת ההרשאות הנ"ל יכולה לאפשר למשתמש לשנות את הפריווילגיות שלהם או של אחרים במערכת. הגדירו תפקידים להרשאות אלה למשתמשים בהם אתם בוטחים בלבד.', 'roles_system_warning' => 'שימו לב לכך שגישה לכל אחת משלושת ההרשאות הנ"ל יכולה לאפשר למשתמש לשנות את הפריווילגיות שלהם או של אחרים במערכת. הגדירו תפקידים להרשאות אלה למשתמשים בהם אתם בוטחים בלבד.',
'role_asset_desc' => 'הרשאות אלו שולטות בגישת ברירת המחדל למשאבים בתוך המערכת. הרשאות של ספרים, פרקים ודפים יגברו על הרשאות אלו.', 'role_asset_desc' => 'הרשאות אלו שולטות בגישת ברירת המחדל למשאבים בתוך המערכת. הרשאות של ספרים, פרקים ודפים יגברו על הרשאות אלו.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Nacrt spremljen kao', 'pages_edit_draft_save_at' => 'Nacrt spremljen kao',
'pages_edit_delete_draft' => 'Izbriši nacrt', 'pages_edit_delete_draft' => 'Izbriši nacrt',
'pages_edit_discard_draft' => 'Odbaci nacrt', 'pages_edit_discard_draft' => 'Odbaci nacrt',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Postavi dnevnik promjena', 'pages_edit_set_changelog' => 'Postavi dnevnik promjena',
'pages_edit_enter_changelog_desc' => 'Ukratko opišite promjene koje ste napravili', 'pages_edit_enter_changelog_desc' => 'Ukratko opišite promjene koje ste napravili',
'pages_edit_enter_changelog' => 'Unesi dnevnik promjena', 'pages_edit_enter_changelog' => 'Unesi dnevnik promjena',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Spremi stranicu', 'pages_save' => 'Spremi stranicu',
'pages_title' => 'Naslov stranice', 'pages_title' => 'Naslov stranice',
'pages_name' => 'Ime stranice', 'pages_name' => 'Ime stranice',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revizija #:id', 'pages_revisions_numbered' => 'Revizija #:id',
'pages_revisions_numbered_changes' => 'Revizija #:id Promjene', 'pages_revisions_numbered_changes' => 'Revizija #:id Promjene',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Dnevnik promjena', 'pages_revisions_changelog' => 'Dnevnik promjena',
'pages_revisions_changes' => 'Promjene', 'pages_revisions_changes' => 'Promjene',
'pages_revisions_current' => 'Trenutna verzija', 'pages_revisions_current' => 'Trenutna verzija',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Visoka razina sigurnosti prijenosa slika', 'app_secure_images' => 'Visoka razina sigurnosti prijenosa slika',
'app_secure_images_toggle' => 'Omogući visoku sigurnost prijenosa slika', 'app_secure_images_toggle' => 'Omogući visoku sigurnost prijenosa slika',
'app_secure_images_desc' => 'Zbog specifične izvedbe sve su slike javne. Osigurajte da indeksi direktorija nisu omogućeni kako bi se spriječio neovlašten pristup.', 'app_secure_images_desc' => 'Zbog specifične izvedbe sve su slike javne. Osigurajte da indeksi direktorija nisu omogućeni kako bi se spriječio neovlašten pristup.',
'app_editor' => 'Uređivač stranice', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Odaberite uređivače stranica', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Prilagođeni HTML sadržaj', 'app_custom_html' => 'Prilagođeni HTML sadržaj',
'app_custom_html_desc' => 'Sav sadržaj dodan ovdje bit će umetnut na dno <glavne> stranice. To je korisno za stiliziranje i dodavanje analitičkog koda.', 'app_custom_html_desc' => 'Sav sadržaj dodan ovdje bit će umetnut na dno <glavne> stranice. To je korisno za stiliziranje i dodavanje analitičkog koda.',
'app_custom_html_disabled_notice' => 'Prilagođeni HTML je onemogućen kako bi se osiguralo vraćanje promjena u slučaju kvara.', 'app_custom_html_disabled_notice' => 'Prilagođeni HTML je onemogućen kako bi se osiguralo vraćanje promjena u slučaju kvara.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'API pristup', 'role_access_api' => 'API pristup',
'role_manage_settings' => 'Upravljanje postavkama aplikacija', 'role_manage_settings' => 'Upravljanje postavkama aplikacija',
'role_export_content' => 'Export content', 'role_export_content' => 'Export content',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Upravljanje vlasništvom', 'role_asset' => 'Upravljanje vlasništvom',
'roles_system_warning' => 'Uzmite u obzir da pristup bilo kojem od ovih dopuštenja dozvoljavate korisniku upravljanje dopuštenjima ostalih u sustavu. Ova dopuštenja dodijelite pouzdanim korisnicima.', 'roles_system_warning' => 'Uzmite u obzir da pristup bilo kojem od ovih dopuštenja dozvoljavate korisniku upravljanje dopuštenjima ostalih u sustavu. Ova dopuštenja dodijelite pouzdanim korisnicima.',
'role_asset_desc' => 'Ova dopuštenja kontroliraju zadane pristupe. Dopuštenja za knjige, poglavlja i stranice ih poništavaju.', 'role_asset_desc' => 'Ova dopuštenja kontroliraju zadane pristupe. Dopuštenja za knjige, poglavlja i stranice ih poništavaju.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Vázlat elmentve:', 'pages_edit_draft_save_at' => 'Vázlat elmentve:',
'pages_edit_delete_draft' => 'Vázlat törlése', 'pages_edit_delete_draft' => 'Vázlat törlése',
'pages_edit_discard_draft' => 'Vázlat elvetése', 'pages_edit_discard_draft' => 'Vázlat elvetése',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Változásnapló beállítása', 'pages_edit_set_changelog' => 'Változásnapló beállítása',
'pages_edit_enter_changelog_desc' => 'A végrehajtott módosítások rövid leírása', 'pages_edit_enter_changelog_desc' => 'A végrehajtott módosítások rövid leírása',
'pages_edit_enter_changelog' => 'Változásnapló megadása', 'pages_edit_enter_changelog' => 'Változásnapló megadása',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Oldal mentése', 'pages_save' => 'Oldal mentése',
'pages_title' => 'Oldal címe', 'pages_title' => 'Oldal címe',
'pages_name' => 'Oldal neve', 'pages_name' => 'Oldal neve',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Változat #:id', 'pages_revisions_numbered' => 'Változat #:id',
'pages_revisions_numbered_changes' => '#:id változat módosításai', 'pages_revisions_numbered_changes' => '#:id változat módosításai',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Változásnapló', 'pages_revisions_changelog' => 'Változásnapló',
'pages_revisions_changes' => 'Módosítások', 'pages_revisions_changes' => 'Módosítások',
'pages_revisions_current' => 'Aktuális verzió', 'pages_revisions_current' => 'Aktuális verzió',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Magasabb biztonságú képfeltöltés', 'app_secure_images' => 'Magasabb biztonságú képfeltöltés',
'app_secure_images_toggle' => 'Magasabb biztonságú képfeltöltés engedélyezése', 'app_secure_images_toggle' => 'Magasabb biztonságú képfeltöltés engedélyezése',
'app_secure_images_desc' => 'Teljesítmény optimalizálási okokból minden kép nyilvános. Ez a beállítás egy véletlenszerű, nehezen kitalálható karakterláncot illeszt a képek útvonalának elejére. Meg kell győződni róla, hogy a könnyű hozzáférés megakadályozása érdekében a könyvtár indexek nincsenek engedélyezve.', 'app_secure_images_desc' => 'Teljesítmény optimalizálási okokból minden kép nyilvános. Ez a beállítás egy véletlenszerű, nehezen kitalálható karakterláncot illeszt a képek útvonalának elejére. Meg kell győződni róla, hogy a könnyű hozzáférés megakadályozása érdekében a könyvtár indexek nincsenek engedélyezve.',
'app_editor' => 'Oldalszerkesztő', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Annak kiválasztása, hogy a felhasználók melyik szerkesztőt használhatják az oldalak szerkesztéséhez.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Egyéni HTML fejléc tartalom', 'app_custom_html' => 'Egyéni HTML fejléc tartalom',
'app_custom_html_desc' => 'Az itt hozzáadott bármilyen tartalom be lesz illesztve minden oldal <head> szekciójának aljára. Ez hasznos a stílusok felülírásához van analitikai kódok hozzáadásához.', 'app_custom_html_desc' => 'Az itt hozzáadott bármilyen tartalom be lesz illesztve minden oldal <head> szekciójának aljára. Ez hasznos a stílusok felülírásához van analitikai kódok hozzáadásához.',
'app_custom_html_disabled_notice' => 'Az egyéni HTML fejléc tartalom le van tiltva ezen a beállítási oldalon, hogy az esetleg hibásan megadott módosításokat vissza lehessen állítani.', 'app_custom_html_disabled_notice' => 'Az egyéni HTML fejléc tartalom le van tiltva ezen a beállítási oldalon, hogy az esetleg hibásan megadott módosításokat vissza lehessen állítani.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Hozzáférés a rendszer API-hoz', 'role_access_api' => 'Hozzáférés a rendszer API-hoz',
'role_manage_settings' => 'Alkalmazás beállításainak kezelése', 'role_manage_settings' => 'Alkalmazás beállításainak kezelése',
'role_export_content' => 'Tartalom exportálása', 'role_export_content' => 'Tartalom exportálása',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Eszköz jogosultságok', 'role_asset' => 'Eszköz jogosultságok',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.', 'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'Ezek a jogosultság vezérlik a alapértelmezés szerinti hozzáférést a rendszerben található eszközökhöz. A könyvek, fejezetek és oldalak jogosultságai felülírják ezeket a jogosultságokat.', 'role_asset_desc' => 'Ezek a jogosultság vezérlik a alapértelmezés szerinti hozzáférést a rendszerben található eszközökhöz. A könyvek, fejezetek és oldalak jogosultságai felülírják ezeket a jogosultságokat.',

View File

@ -21,7 +21,7 @@ return [
'email' => 'Email', 'email' => 'Email',
'password' => 'Kata Sandi', 'password' => 'Kata Sandi',
'password_confirm' => 'Konfirmasi Kata Sandi', 'password_confirm' => 'Konfirmasi Kata Sandi',
'password_hint' => 'Must be at least 8 characters', 'password_hint' => 'Harus minimal 8 karakter',
'forgot_password' => 'Lupa Password?', 'forgot_password' => 'Lupa Password?',
'remember_me' => 'Ingat saya', 'remember_me' => 'Ingat saya',
'ldap_email_hint' => 'Harap masukkan email yang akan digunakan untuk akun ini.', 'ldap_email_hint' => 'Harap masukkan email yang akan digunakan untuk akun ini.',
@ -77,13 +77,13 @@ return [
'mfa_setup' => 'Setup Multi-Factor Authentication', 'mfa_setup' => 'Setup Multi-Factor Authentication',
'mfa_setup_desc' => 'Setup multi-factor authentication as an extra layer of security for your user account.', 'mfa_setup_desc' => 'Setup multi-factor authentication as an extra layer of security for your user account.',
'mfa_setup_configured' => 'Already configured', 'mfa_setup_configured' => 'Already configured',
'mfa_setup_reconfigure' => 'Reconfigure', 'mfa_setup_reconfigure' => 'Konfigurasi ulang',
'mfa_setup_remove_confirmation' => 'Apakah Anda yakin ingin menghapus metode autentikasi multi-faktor ini?', 'mfa_setup_remove_confirmation' => 'Apakah Anda yakin ingin menghapus metode autentikasi multi-faktor ini?',
'mfa_setup_action' => 'Setup', 'mfa_setup_action' => 'Setup',
'mfa_backup_codes_usage_limit_warning' => 'You have less than 5 backup codes remaining, Please generate and store a new set before you run out of codes to prevent being locked out of your account.', 'mfa_backup_codes_usage_limit_warning' => 'You have less than 5 backup codes remaining, Please generate and store a new set before you run out of codes to prevent being locked out of your account.',
'mfa_option_totp_title' => 'Mobile App', 'mfa_option_totp_title' => 'Aplikasi Seluler',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.', 'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Codes', 'mfa_option_backup_codes_title' => 'Kode Cadangan',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.', 'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable', 'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup', 'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
@ -100,9 +100,9 @@ return [
'mfa_verify_access_desc' => 'Your user account requires you to confirm your identity via an additional level of verification before you\'re granted access. Verify using one of your configured methods to continue.', 'mfa_verify_access_desc' => 'Your user account requires you to confirm your identity via an additional level of verification before you\'re granted access. Verify using one of your configured methods to continue.',
'mfa_verify_no_methods' => 'No Methods Configured', 'mfa_verify_no_methods' => 'No Methods Configured',
'mfa_verify_no_methods_desc' => 'No multi-factor authentication methods could be found for your account. You\'ll need to set up at least one method before you gain access.', 'mfa_verify_no_methods_desc' => 'No multi-factor authentication methods could be found for your account. You\'ll need to set up at least one method before you gain access.',
'mfa_verify_use_totp' => 'Verify using a mobile app', 'mfa_verify_use_totp' => 'Verifikasi menggunakan aplikasi seluler',
'mfa_verify_use_backup_codes' => 'Verify using a backup code', 'mfa_verify_use_backup_codes' => 'Verifikasi menggunakan kode cadangan',
'mfa_verify_backup_code' => 'Backup Code', 'mfa_verify_backup_code' => 'Kode Cadangan',
'mfa_verify_backup_code_desc' => 'Enter one of your remaining backup codes below:', 'mfa_verify_backup_code_desc' => 'Enter one of your remaining backup codes below:',
'mfa_verify_backup_code_enter_here' => 'Enter backup code here', 'mfa_verify_backup_code_enter_here' => 'Enter backup code here',
'mfa_verify_totp_desc' => 'Enter the code, generated using your mobile app, below:', 'mfa_verify_totp_desc' => 'Enter the code, generated using your mobile app, below:',

View File

@ -7,27 +7,27 @@
*/ */
return [ return [
// General editor terms // General editor terms
'general' => 'General', 'general' => 'Umum',
'advanced' => 'Advanced', 'advanced' => 'Lanjutan',
'none' => 'None', 'none' => 'Tidak Ada',
'cancel' => 'Cancel', 'cancel' => 'Batal',
'save' => 'Save', 'save' => 'Simpan',
'close' => 'Close', 'close' => 'Tutup',
'undo' => 'Undo', 'undo' => 'Undo',
'redo' => 'Redo', 'redo' => 'Ulangi',
'left' => 'Left', 'left' => 'Kiri',
'center' => 'Center', 'center' => 'Tengah',
'right' => 'Right', 'right' => 'Kanan',
'top' => 'Top', 'top' => 'Atas',
'middle' => 'Middle', 'middle' => 'Sedang',
'bottom' => 'Bottom', 'bottom' => 'Bawah',
'width' => 'Width', 'width' => 'Lebar',
'height' => 'Height', 'height' => 'Tinggi',
'More' => 'More', 'More' => 'Lebih Banyak',
'select' => 'Select...', 'select' => 'Pilih...',
// Toolbar // Toolbar
'formats' => 'Formats', 'formats' => 'Format',
'header_large' => 'Large Header', 'header_large' => 'Large Header',
'header_medium' => 'Medium Header', 'header_medium' => 'Medium Header',
'header_small' => 'Small Header', 'header_small' => 'Small Header',
@ -37,12 +37,12 @@ return [
'inline_code' => 'Inline code', 'inline_code' => 'Inline code',
'callouts' => 'Callouts', 'callouts' => 'Callouts',
'callout_information' => 'Information', 'callout_information' => 'Information',
'callout_success' => 'Success', 'callout_success' => 'Sukses',
'callout_warning' => 'Warning', 'callout_warning' => 'Peringatan',
'callout_danger' => 'Danger', 'callout_danger' => 'Bahaya',
'bold' => 'Bold', 'bold' => 'Berani',
'italic' => 'Italic', 'italic' => 'Italic',
'underline' => 'Underline', 'underline' => 'Garis Bawah',
'strikethrough' => 'Strikethrough', 'strikethrough' => 'Strikethrough',
'superscript' => 'Superscript', 'superscript' => 'Superscript',
'subscript' => 'Subscript', 'subscript' => 'Subscript',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Draf disimpan pada ', 'pages_edit_draft_save_at' => 'Draf disimpan pada ',
'pages_edit_delete_draft' => 'Hapus Draf', 'pages_edit_delete_draft' => 'Hapus Draf',
'pages_edit_discard_draft' => 'Buang Draf', 'pages_edit_discard_draft' => 'Buang Draf',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Atur Changelog', 'pages_edit_set_changelog' => 'Atur Changelog',
'pages_edit_enter_changelog_desc' => 'Masukkan deskripsi singkat tentang perubahan yang Anda buat', 'pages_edit_enter_changelog_desc' => 'Masukkan deskripsi singkat tentang perubahan yang Anda buat',
'pages_edit_enter_changelog' => 'Masuk ke Changelog', 'pages_edit_enter_changelog' => 'Masuk ke Changelog',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Simpan Halaman', 'pages_save' => 'Simpan Halaman',
'pages_title' => 'Judul Halaman', 'pages_title' => 'Judul Halaman',
'pages_name' => 'Nama Halaman', 'pages_name' => 'Nama Halaman',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revisi #:id', 'pages_revisions_numbered' => 'Revisi #:id',
'pages_revisions_numbered_changes' => 'Revisi #:id Berubah', 'pages_revisions_numbered_changes' => 'Revisi #:id Berubah',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Changelog', 'pages_revisions_changelog' => 'Changelog',
'pages_revisions_changes' => 'Perubahan', 'pages_revisions_changes' => 'Perubahan',
'pages_revisions_current' => 'Versi sekarang', 'pages_revisions_current' => 'Versi sekarang',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Unggahan Gambar Keamanan Lebih Tinggi', 'app_secure_images' => 'Unggahan Gambar Keamanan Lebih Tinggi',
'app_secure_images_toggle' => 'Aktifkan unggahan gambar dengan keamanan lebih tinggi', 'app_secure_images_toggle' => 'Aktifkan unggahan gambar dengan keamanan lebih tinggi',
'app_secure_images_desc' => 'Untuk alasan performa, semua gambar bersifat publik. Opsi ini menambahkan string acak yang sulit ditebak di depan url gambar. Pastikan indeks direktori tidak diaktifkan untuk mencegah akses mudah.', 'app_secure_images_desc' => 'Untuk alasan performa, semua gambar bersifat publik. Opsi ini menambahkan string acak yang sulit ditebak di depan url gambar. Pastikan indeks direktori tidak diaktifkan untuk mencegah akses mudah.',
'app_editor' => 'Halaman Editor', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Pilih editor mana yang akan digunakan oleh semua pengguna untuk mengedit halaman.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Kustom Konten HTML Head', 'app_custom_html' => 'Kustom Konten HTML Head',
'app_custom_html_desc' => 'Konten apa pun yang ditambahkan di sini akan dimasukkan ke bagian bawah <head> bagian dari setiap halaman. Ini berguna untuk mengganti gaya atau menambahkan kode analitik.', 'app_custom_html_desc' => 'Konten apa pun yang ditambahkan di sini akan dimasukkan ke bagian bawah <head> bagian dari setiap halaman. Ini berguna untuk mengganti gaya atau menambahkan kode analitik.',
'app_custom_html_disabled_notice' => 'Kustom konten HTML Head dinonaktifkan pada halaman pengaturan ini untuk memastikan setiap perubahan yang mengganggu dapat dikembalikan.', 'app_custom_html_disabled_notice' => 'Kustom konten HTML Head dinonaktifkan pada halaman pengaturan ini untuk memastikan setiap perubahan yang mengganggu dapat dikembalikan.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'Akses Sistem API', 'role_access_api' => 'Akses Sistem API',
'role_manage_settings' => 'Kelola setelan aplikasi', 'role_manage_settings' => 'Kelola setelan aplikasi',
'role_export_content' => 'Export content', 'role_export_content' => 'Export content',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Izin Aset', 'role_asset' => 'Izin Aset',
'roles_system_warning' => 'Ketahuilah bahwa akses ke salah satu dari tiga izin di atas dapat memungkinkan pengguna untuk mengubah hak mereka sendiri atau orang lain dalam sistem. Hanya tetapkan peran dengan izin ini untuk pengguna tepercaya.', 'roles_system_warning' => 'Ketahuilah bahwa akses ke salah satu dari tiga izin di atas dapat memungkinkan pengguna untuk mengubah hak mereka sendiri atau orang lain dalam sistem. Hanya tetapkan peran dengan izin ini untuk pengguna tepercaya.',
'role_asset_desc' => 'Izin ini mengontrol akses default ke aset dalam sistem. Izin pada Buku, Bab, dan Halaman akan menggantikan izin ini.', 'role_asset_desc' => 'Izin ini mengontrol akses default ke aset dalam sistem. Izin pada Buku, Bab, dan Halaman akan menggantikan izin ini.',

View File

@ -15,7 +15,7 @@ return [
'alpha_dash' => ':attribute hanya boleh berisi huruf, angka, tanda hubung, dan garis bawah.', 'alpha_dash' => ':attribute hanya boleh berisi huruf, angka, tanda hubung, dan garis bawah.',
'alpha_num' => ':attribute hanya boleh berisi huruf dan angka.', 'alpha_num' => ':attribute hanya boleh berisi huruf dan angka.',
'array' => ':attribute harus berupa larik.', 'array' => ':attribute harus berupa larik.',
'backup_codes' => 'The provided code is not valid or has already been used.', 'backup_codes' => 'Kode yang diberikan tidak valid atau telah digunakan.',
'before' => ':attribute harus tanggal sebelum :date.', 'before' => ':attribute harus tanggal sebelum :date.',
'between' => [ 'between' => [
'numeric' => ':attribute harus di antara :min dan :max.', 'numeric' => ':attribute harus di antara :min dan :max.',
@ -32,7 +32,7 @@ return [
'digits_between' => ':attribute harus diantara :min dan :max digit.', 'digits_between' => ':attribute harus diantara :min dan :max digit.',
'email' => ':attrtibute Harus alamat e-mail yang valid.', 'email' => ':attrtibute Harus alamat e-mail yang valid.',
'ends_with' => ':attribute harus diakhiri dengan salah satu dari berikut ini: :values', 'ends_with' => ':attribute harus diakhiri dengan salah satu dari berikut ini: :values',
'file' => 'The :attribute must be provided as a valid file.', 'file' => ':attribute harus diberikan sebagai file yang valid.',
'filled' => ':attribute bidang diperlukan.', 'filled' => ':attribute bidang diperlukan.',
'gt' => [ 'gt' => [
'numeric' => ':attribute harus lebih besar dari :value.', 'numeric' => ':attribute harus lebih besar dari :value.',
@ -100,7 +100,7 @@ return [
], ],
'string' => ':attribute harus berupa string.', 'string' => ':attribute harus berupa string.',
'timezone' => ':attribute harus menjadi zona yang valid.', 'timezone' => ':attribute harus menjadi zona yang valid.',
'totp' => 'The provided code is not valid or has expired.', 'totp' => 'Kode yang diberikan tidak valid atau telah kedaluwarsa.',
'unique' => ':attribute sudah diambil.', 'unique' => ':attribute sudah diambil.',
'url' => ':attribute format tidak valid.', 'url' => ':attribute format tidak valid.',
'uploaded' => 'Berkas tidak dapat diunggah. Server mungkin tidak menerima berkas dengan ukuran ini.', 'uploaded' => 'Berkas tidak dapat diunggah. Server mungkin tidak menerima berkas dengan ukuran ini.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Bozza salvata alle ', 'pages_edit_draft_save_at' => 'Bozza salvata alle ',
'pages_edit_delete_draft' => 'Elimina Bozza', 'pages_edit_delete_draft' => 'Elimina Bozza',
'pages_edit_discard_draft' => 'Scarta Bozza', 'pages_edit_discard_draft' => 'Scarta Bozza',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Imposta Changelog', 'pages_edit_set_changelog' => 'Imposta Changelog',
'pages_edit_enter_changelog_desc' => 'Inserisci una breve descrizione dei cambiamenti che hai apportato', 'pages_edit_enter_changelog_desc' => 'Inserisci una breve descrizione dei cambiamenti che hai apportato',
'pages_edit_enter_changelog' => 'Inserisci Changelog', 'pages_edit_enter_changelog' => 'Inserisci Changelog',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Salva Pagina', 'pages_save' => 'Salva Pagina',
'pages_title' => 'Titolo Pagina', 'pages_title' => 'Titolo Pagina',
'pages_name' => 'Nome Pagina', 'pages_name' => 'Nome Pagina',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Revisione #:id', 'pages_revisions_numbered' => 'Revisione #:id',
'pages_revisions_numbered_changes' => 'Modifiche Revisione #:id', 'pages_revisions_numbered_changes' => 'Modifiche Revisione #:id',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Cambiamenti', 'pages_revisions_changelog' => 'Cambiamenti',
'pages_revisions_changes' => 'Cambiamenti', 'pages_revisions_changes' => 'Cambiamenti',
'pages_revisions_current' => 'Versione Corrente', 'pages_revisions_current' => 'Versione Corrente',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => 'Abilitare una sicurezza maggiore per le immagini caricate?', 'app_secure_images' => 'Abilitare una sicurezza maggiore per le immagini caricate?',
'app_secure_images_toggle' => 'Abilita sicurezza aggiuntiva negli upload delle immagini', 'app_secure_images_toggle' => 'Abilita sicurezza aggiuntiva negli upload delle immagini',
'app_secure_images_desc' => 'Per una ragione di prestazioni, tutte le immagini sono pubbliche. Questa opzione aaggiunge una stringa, difficile da indovinare, random negli url delle immagini. Assicurati che il listing delle cartelle non sia abilitato per prevenire un accesso semplice.', 'app_secure_images_desc' => 'Per una ragione di prestazioni, tutte le immagini sono pubbliche. Questa opzione aaggiunge una stringa, difficile da indovinare, random negli url delle immagini. Assicurati che il listing delle cartelle non sia abilitato per prevenire un accesso semplice.',
'app_editor' => 'Editor pagine', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => 'Seleziona quale editor verrà usato da tutti gli utenti per modificare le pagine.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => 'Contenuto Head HTML Custom', 'app_custom_html' => 'Contenuto Head HTML Custom',
'app_custom_html_desc' => 'Qualsiasi contenuto aggiunto qui verrà inserito alla fine della sezione <head> di tutte le pagine. Questo è utile per sovrascrivere lo stile o aggiungere il codice per gli analytics.', 'app_custom_html_desc' => 'Qualsiasi contenuto aggiunto qui verrà inserito alla fine della sezione <head> di tutte le pagine. Questo è utile per sovrascrivere lo stile o aggiungere il codice per gli analytics.',
'app_custom_html_disabled_notice' => 'Il contenuto HTML personalizzato è disabilitato su questa pagina impostazioni per garantire che eventuali modifiche possano essere ripristinate.', 'app_custom_html_disabled_notice' => 'Il contenuto HTML personalizzato è disabilitato su questa pagina impostazioni per garantire che eventuali modifiche possano essere ripristinate.',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'API sistema d\'accesso', 'role_access_api' => 'API sistema d\'accesso',
'role_manage_settings' => 'Gestire impostazioni app', 'role_manage_settings' => 'Gestire impostazioni app',
'role_export_content' => 'Esporta contenuto', 'role_export_content' => 'Esporta contenuto',
'role_editor_change' => 'Change page editor',
'role_asset' => 'Permessi Entità', 'role_asset' => 'Permessi Entità',
'roles_system_warning' => 'Siate consapevoli che l\'accesso a uno dei tre permessi qui sopra, può consentire a un utente di modificare i propri privilegi o i privilegi di altri nel sistema. Assegna ruoli con questi permessi solo ad utenti fidati.', 'roles_system_warning' => 'Siate consapevoli che l\'accesso a uno dei tre permessi qui sopra, può consentire a un utente di modificare i propri privilegi o i privilegi di altri nel sistema. Assegna ruoli con questi permessi solo ad utenti fidati.',
'role_asset_desc' => 'Questi permessi controllano l\'accesso di default alle entità. I permessi nei Libri, Capitoli e Pagine sovrascriveranno questi.', 'role_asset_desc' => 'Questi permessi controllano l\'accesso di default alle entità. I permessi nei Libri, Capitoli e Pagine sovrascriveranno questi.',

View File

@ -53,15 +53,15 @@ return [
// Webhooks // Webhooks
'webhook_create' => 'created webhook', 'webhook_create' => 'created webhook',
'webhook_create_notification' => 'Webhook successfully created', 'webhook_create_notification' => 'Webhookが正常に作成されました',
'webhook_update' => 'updated webhook', 'webhook_update' => 'updated webhook',
'webhook_update_notification' => 'Webhook successfully updated', 'webhook_update_notification' => 'Webhookが正常に更新されました',
'webhook_delete' => 'deleted webhook', 'webhook_delete' => 'deleted webhook',
'webhook_delete_notification' => 'Webhook successfully deleted', 'webhook_delete_notification' => 'Webhookが正常に削除されました',
// Users // Users
'user_update_notification' => 'User successfully updated', 'user_update_notification' => 'ユーザーが正常に更新されました',
'user_delete_notification' => 'User successfully removed', 'user_delete_notification' => 'ユーザーが正常に削除されました',
// Other // Other
'commented_on' => 'がコメント:', 'commented_on' => 'がコメント:',

View File

@ -75,7 +75,7 @@ return [
'status_active' => '有効', 'status_active' => '有効',
'status_inactive' => '無効', 'status_inactive' => '無効',
'never' => '該当なし', 'never' => '該当なし',
'none' => 'None', 'none' => 'なし',
// Header // Header
'header_menu_expand' => 'ヘッダーメニューを展開', 'header_menu_expand' => 'ヘッダーメニューを展開',

View File

@ -24,7 +24,7 @@ return [
'width' => '幅', 'width' => '幅',
'height' => '高さ', 'height' => '高さ',
'More' => 'さらに表示', 'More' => 'さらに表示',
'select' => 'Select...', 'select' => '選択...',
// Toolbar // Toolbar
'formats' => '書式', 'formats' => '書式',
@ -53,10 +53,10 @@ return [
'align_left' => '左揃え', 'align_left' => '左揃え',
'align_center' => '中央揃え', 'align_center' => '中央揃え',
'align_right' => '右揃え', 'align_right' => '右揃え',
'align_justify' => 'Justify', 'align_justify' => '両端揃え',
'list_bullet' => '箇条書き', 'list_bullet' => '箇条書き',
'list_numbered' => '番号付き箇条書き', 'list_numbered' => '番号付き箇条書き',
'list_task' => 'Task list', 'list_task' => 'タスクリスト',
'indent_increase' => 'インデントを増やす', 'indent_increase' => 'インデントを増やす',
'indent_decrease' => 'インデントを減らす', 'indent_decrease' => 'インデントを減らす',
'table' => '表', 'table' => '表',
@ -93,10 +93,10 @@ return [
'cell_properties_title' => 'セルの詳細設定', 'cell_properties_title' => 'セルの詳細設定',
'cell_type' => 'セルタイプ', 'cell_type' => 'セルタイプ',
'cell_type_cell' => 'セル', 'cell_type_cell' => 'セル',
'cell_scope' => 'Scope', 'cell_scope' => '見出しとの関連',
'cell_type_header' => 'ヘッダーセル', 'cell_type_header' => 'ヘッダーセル',
'merge_cells' => 'Merge cells', 'merge_cells' => 'セルを結合',
'split_cell' => 'Split cell', 'split_cell' => 'セルを分割',
'table_row_group' => '行グループ', 'table_row_group' => '行グループ',
'table_column_group' => '列グループ', 'table_column_group' => '列グループ',
'horizontal_align' => '水平方向の配置', 'horizontal_align' => '水平方向の配置',
@ -124,16 +124,16 @@ return [
'caption' => '表題', 'caption' => '表題',
'show_caption' => 'キャプションの表示', 'show_caption' => 'キャプションの表示',
'constrain' => '縦横比を保持する', 'constrain' => '縦横比を保持する',
'cell_border_solid' => 'Solid', 'cell_border_solid' => '実線',
'cell_border_dotted' => 'Dotted', 'cell_border_dotted' => '点線',
'cell_border_dashed' => 'Dashed', 'cell_border_dashed' => '破線',
'cell_border_double' => 'Double', 'cell_border_double' => '二重線',
'cell_border_groove' => 'Groove', 'cell_border_groove' => '掘り',
'cell_border_ridge' => 'Ridge', 'cell_border_ridge' => '盛り',
'cell_border_inset' => 'Inset', 'cell_border_inset' => '陥没',
'cell_border_outset' => 'Outset', 'cell_border_outset' => '隆起',
'cell_border_none' => 'None', 'cell_border_none' => 'なし',
'cell_border_hidden' => 'Hidden', 'cell_border_hidden' => 'なし(優先)',
// Images, links, details/summary & embed // Images, links, details/summary & embed
'source' => '画像のソース', 'source' => '画像のソース',
@ -154,18 +154,18 @@ return [
'toggle_label' => 'ブロックのラベル', 'toggle_label' => 'ブロックのラベル',
// About view // About view
'about' => 'About the editor', 'about' => 'エディタについて',
'about_title' => 'WYSIWYGエディタについて', 'about_title' => 'WYSIWYGエディタについて',
'editor_license' => 'エディタのライセンスと著作権', 'editor_license' => 'エディタのライセンスと著作権',
'editor_tiny_license' => 'このエディタはLGPL v2.1ライセンスの下で提供される:tinyLinkを利用して構築されています。', 'editor_tiny_license' => 'このエディタはLGPL v2.1ライセンスの下で提供される:tinyLinkを利用して構築されています。',
'editor_tiny_license_link' => 'TinyMCEの著作権およびライセンスの詳細は、こちらをご覧ください。', 'editor_tiny_license_link' => 'TinyMCEの著作権およびライセンスの詳細は、こちらをご覧ください。',
'save_continue' => 'ページを保存して続行', 'save_continue' => 'ページを保存して続行',
'callouts_cycle' => '(押し続けて種類を切り替え)', 'callouts_cycle' => '(押し続けて種類を切り替え)',
'link_selector' => 'Link to content', 'link_selector' => 'コンテンツへのリンク',
'shortcuts' => 'ショートカット', 'shortcuts' => 'ショートカット',
'shortcut' => 'ショートカット', 'shortcut' => 'ショートカット',
'shortcuts_intro' => 'エディタでは次に示すショートカットが利用できます。', 'shortcuts_intro' => 'エディタでは次に示すショートカットが利用できます。',
'windows_linux' => '(Windows/Linux)', 'windows_linux' => '(Windows/Linux)',
'mac' => '(Mac)', 'mac' => '(Mac)',
'description' => 'テンプレートの内容', 'description' => '説明',
]; ];

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => '下書きを保存済み: ', 'pages_edit_draft_save_at' => '下書きを保存済み: ',
'pages_edit_delete_draft' => '下書きを削除', 'pages_edit_delete_draft' => '下書きを削除',
'pages_edit_discard_draft' => '下書きを破棄', 'pages_edit_discard_draft' => '下書きを破棄',
'pages_edit_switch_to_markdown' => 'Markdownエディタに切り替え',
'pages_edit_switch_to_markdown_clean' => '(クリーンなコンテンツ)',
'pages_edit_switch_to_markdown_stable' => '(安定したコンテンツ)',
'pages_edit_switch_to_wysiwyg' => 'WYSIWYGエディタに切り替え',
'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_are_you_sure' => 'このページのエディタを変更してもよろしいですか?',
'pages_editor_switch_consider_following' => 'エディタを変更する場合には次の点に注意してください',
'pages_editor_switch_consideration_a' => '保存すると、新しいエディタはそれ自身で種類を変更できない可能性のあるエディタを含め、今後のエディタとして利用されます。',
'pages_editor_switch_consideration_b' => 'これにより、特定の状況で詳細と構文が失われる可能性があります。',
'pages_editor_switch_consideration_c' => '最後の保存以降に行われたタグまたは変更ログの変更は、この変更では保持されません。',
'pages_save' => 'ページを保存', 'pages_save' => 'ページを保存',
'pages_title' => 'ページタイトル', 'pages_title' => 'ページタイトル',
'pages_name' => 'ページ名', 'pages_name' => 'ページ名',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'リビジョン #:id', 'pages_revisions_numbered' => 'リビジョン #:id',
'pages_revisions_numbered_changes' => 'リビジョン #:id の変更', 'pages_revisions_numbered_changes' => 'リビジョン #:id の変更',
'pages_revisions_editor' => 'エディタの種類',
'pages_revisions_changelog' => '説明', 'pages_revisions_changelog' => '説明',
'pages_revisions_changes' => '変更点', 'pages_revisions_changes' => '変更点',
'pages_revisions_current' => '現在のバージョン', 'pages_revisions_current' => '現在のバージョン',

View File

@ -10,8 +10,8 @@ return [
'settings' => '設定', 'settings' => '設定',
'settings_save' => '設定を保存', 'settings_save' => '設定を保存',
'settings_save_success' => '設定を保存しました', 'settings_save_success' => '設定を保存しました',
'system_version' => 'System Version', 'system_version' => 'システムバージョン',
'categories' => 'Categories', 'categories' => 'カテゴリー',
// App Settings // App Settings
'app_customization' => 'カスタマイズ', 'app_customization' => 'カスタマイズ',
@ -27,8 +27,8 @@ return [
'app_secure_images' => '画像アップロード時のセキュリティを強化', 'app_secure_images' => '画像アップロード時のセキュリティを強化',
'app_secure_images_toggle' => 'より高いセキュリティの画像アップロードを可能にする', 'app_secure_images_toggle' => 'より高いセキュリティの画像アップロードを可能にする',
'app_secure_images_desc' => 'パフォーマンスの観点から、全ての画像が公開になっています。このオプションを有効にすると、画像URLの先頭にランダムで推測困難な文字列が追加され、アクセスを困難にします。', 'app_secure_images_desc' => 'パフォーマンスの観点から、全ての画像が公開になっています。このオプションを有効にすると、画像URLの先頭にランダムで推測困難な文字列が追加され、アクセスを困難にします。',
'app_editor' => 'ページエディタ', 'app_default_editor' => 'デフォルトのページエディタ',
'app_editor_desc' => 'ここで選択されたエディタを全ユーザが使用します。', 'app_default_editor_desc' => '新しいページを編集するときにデフォルトで使用されるエディタを選択してください。これは権限が許可されているページレベルで上書きできます。',
'app_custom_html' => 'カスタムheadタグ', 'app_custom_html' => 'カスタムheadタグ',
'app_custom_html_desc' => 'スタイルシートやアナリティクスコード追加したい場合、ここを編集します。これは<head>の最下部に挿入されます。', 'app_custom_html_desc' => 'スタイルシートやアナリティクスコード追加したい場合、ここを編集します。これは<head>の最下部に挿入されます。',
'app_custom_html_disabled_notice' => '重大な変更を元に戻せるよう、この設定ページではカスタムのHTML headコンテンツが無効になっています。', 'app_custom_html_disabled_notice' => '重大な変更を元に戻せるよう、この設定ページではカスタムのHTML headコンテンツが無効になっています。',
@ -106,7 +106,7 @@ return [
'recycle_bin_destroy_list' => '削除されるアイテム', 'recycle_bin_destroy_list' => '削除されるアイテム',
'recycle_bin_restore_list' => '復元されるアイテム', 'recycle_bin_restore_list' => '復元されるアイテム',
'recycle_bin_restore_confirm' => 'この操作により、すべての子要素を含む削除されたアイテムが元の場所に復元されます。元の場所が削除されてごみ箱に入っている場合は、親アイテムも復元する必要があります。', 'recycle_bin_restore_confirm' => 'この操作により、すべての子要素を含む削除されたアイテムが元の場所に復元されます。元の場所が削除されてごみ箱に入っている場合は、親アイテムも復元する必要があります。',
'recycle_bin_restore_deleted_parent' => 'The parent of this item has also been deleted. These will remain deleted until that parent is also restored.', 'recycle_bin_restore_deleted_parent' => 'このアイテムの親も削除されました。これらは、その親が復元されるまで削除されたままになります。',
'recycle_bin_restore_parent' => '親を復元', 'recycle_bin_restore_parent' => '親を復元',
'recycle_bin_destroy_notification' => 'ごみ箱から合計:count個のアイテムを削除しました。', 'recycle_bin_destroy_notification' => 'ごみ箱から合計:count個のアイテムを削除しました。',
'recycle_bin_restore_notification' => 'ごみ箱から合計:count個のアイテムを復元しました。', 'recycle_bin_restore_notification' => 'ごみ箱から合計:count個のアイテムを復元しました。',
@ -152,6 +152,7 @@ return [
'role_access_api' => 'システムのAPIへのアクセス', 'role_access_api' => 'システムのAPIへのアクセス',
'role_manage_settings' => 'アプリケーション設定の管理', 'role_manage_settings' => 'アプリケーション設定の管理',
'role_export_content' => 'コンテンツのエクスポート', 'role_export_content' => 'コンテンツのエクスポート',
'role_editor_change' => 'ページエディタの変更',
'role_asset' => 'アセット権限', 'role_asset' => 'アセット権限',
'roles_system_warning' => '上記の3つの権限のいずれかを付与することは、ユーザーが自分の特権またはシステム内の他のユーザーの特権を変更できる可能性があることに注意してください。これらの権限は信頼できるユーザーにのみ割り当ててください。', 'roles_system_warning' => '上記の3つの権限のいずれかを付与することは、ユーザーが自分の特権またはシステム内の他のユーザーの特権を変更できる可能性があることに注意してください。これらの権限は信頼できるユーザーにのみ割り当ててください。',
'role_asset_desc' => '各アセットに対するデフォルトの権限を設定します。ここで設定した権限が優先されます。', 'role_asset_desc' => '各アセットに対するデフォルトの権限を設定します。ここで設定した権限が優先されます。',
@ -176,7 +177,7 @@ return [
'users_role' => 'ユーザーの役割', 'users_role' => 'ユーザーの役割',
'users_role_desc' => 'このユーザーに割り当てる役割を選択します。ユーザーが複数の役割に割り当てられている場合は、それらの役割の権限が重ね合わされ、割り当てられた役割のすべての権限が与えられます。', 'users_role_desc' => 'このユーザーに割り当てる役割を選択します。ユーザーが複数の役割に割り当てられている場合は、それらの役割の権限が重ね合わされ、割り当てられた役割のすべての権限が与えられます。',
'users_password' => 'ユーザー パスワード', 'users_password' => 'ユーザー パスワード',
'users_password_desc' => 'Set a password used to log-in to the application. This must be at least 8 characters long.', 'users_password_desc' => 'アプリケーションへのログインに利用するパスワードを設定してください。8文字以上である必要があります。',
'users_send_invite_text' => 'このユーザーに招待メールを送信してユーザー自身にパスワードを設定してもらうか、あなたがここでパスワードを設定するかを選択できます。', 'users_send_invite_text' => 'このユーザーに招待メールを送信してユーザー自身にパスワードを設定してもらうか、あなたがここでパスワードを設定するかを選択できます。',
'users_send_invite_option' => 'ユーザーに招待メールを送信', 'users_send_invite_option' => 'ユーザーに招待メールを送信',
'users_external_auth_id' => '外部認証ID', 'users_external_auth_id' => '外部認証ID',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => '보관함: ', 'pages_edit_draft_save_at' => '보관함: ',
'pages_edit_delete_draft' => '초안 삭제', 'pages_edit_delete_draft' => '초안 삭제',
'pages_edit_discard_draft' => '폐기', 'pages_edit_discard_draft' => '폐기',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'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' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => '저장', 'pages_save' => '저장',
'pages_title' => '문서 제목', 'pages_title' => '문서 제목',
'pages_name' => '문서 이름', 'pages_name' => '문서 이름',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => 'No.', 'pages_revisions_number' => 'No.',
'pages_revisions_numbered' => '수정본 :id', 'pages_revisions_numbered' => '수정본 :id',
'pages_revisions_numbered_changes' => '수정본 :id에서 바꾼 부분', 'pages_revisions_numbered_changes' => '수정본 :id에서 바꾼 부분',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => '설명', 'pages_revisions_changelog' => '설명',
'pages_revisions_changes' => '바꾼 부분', 'pages_revisions_changes' => '바꾼 부분',
'pages_revisions_current' => '현재 판본', 'pages_revisions_current' => '현재 판본',

View File

@ -27,8 +27,8 @@ return [
'app_secure_images' => '이미지 주소 보호', 'app_secure_images' => '이미지 주소 보호',
'app_secure_images_toggle' => '이미지 주소 보호', 'app_secure_images_toggle' => '이미지 주소 보호',
'app_secure_images_desc' => '성능상의 문제로 이미지에 누구나 접근할 수 있기 때문에 이미지 주소를 무작위한 문자로 구성합니다. 폴더 색인을 끄세요.', 'app_secure_images_desc' => '성능상의 문제로 이미지에 누구나 접근할 수 있기 때문에 이미지 주소를 무작위한 문자로 구성합니다. 폴더 색인을 끄세요.',
'app_editor' => '에디터', 'app_default_editor' => 'Default Page Editor',
'app_editor_desc' => '모든 사용자에게 적용합니다.', 'app_default_editor_desc' => 'Select which editor will be used by default when editing new pages. This can be overridden at a page level where permissions allow.',
'app_custom_html' => '헤드 작성', 'app_custom_html' => '헤드 작성',
'app_custom_html_desc' => '설정 페이지를 제외한 모든 페이지 head 태그 끝머리에 추가합니다.', 'app_custom_html_desc' => '설정 페이지를 제외한 모든 페이지 head 태그 끝머리에 추가합니다.',
'app_custom_html_disabled_notice' => '문제가 생겨도 설정 페이지에서 되돌릴 수 있어요.', 'app_custom_html_disabled_notice' => '문제가 생겨도 설정 페이지에서 되돌릴 수 있어요.',
@ -152,6 +152,7 @@ return [
'role_access_api' => '시스템 접근 API', 'role_access_api' => '시스템 접근 API',
'role_manage_settings' => '사이트 설정 관리', 'role_manage_settings' => '사이트 설정 관리',
'role_export_content' => '항목 내보내기', 'role_export_content' => '항목 내보내기',
'role_editor_change' => 'Change page editor',
'role_asset' => '권한 항목', 'role_asset' => '권한 항목',
'roles_system_warning' => '위 세 권한은 자신의 권한이나 다른 유저의 권한을 바꿀 수 있습니다.', 'roles_system_warning' => '위 세 권한은 자신의 권한이나 다른 유저의 권한을 바꿀 수 있습니다.',
'role_asset_desc' => '책, 챕터, 문서별 권한은 이 설정에 우선합니다.', 'role_asset_desc' => '책, 챕터, 문서별 권한은 이 설정에 우선합니다.',

View File

@ -196,9 +196,19 @@ return [
'pages_edit_draft_save_at' => 'Juodraštis išsaugotas', 'pages_edit_draft_save_at' => 'Juodraštis išsaugotas',
'pages_edit_delete_draft' => 'Ištrinti juodraštį', 'pages_edit_delete_draft' => 'Ištrinti juodraštį',
'pages_edit_discard_draft' => 'Išmesti juodraštį', 'pages_edit_discard_draft' => 'Išmesti juodraštį',
'pages_edit_switch_to_markdown' => 'Switch to Markdown Editor',
'pages_edit_switch_to_markdown_clean' => '(Clean Content)',
'pages_edit_switch_to_markdown_stable' => '(Stable Content)',
'pages_edit_switch_to_wysiwyg' => 'Switch to WYSIWYG Editor',
'pages_edit_set_changelog' => 'Nustatyti keitimo žurnalą', 'pages_edit_set_changelog' => 'Nustatyti keitimo žurnalą',
'pages_edit_enter_changelog_desc' => 'Įveskite trumpus, jūsų atliktus, pokyčių aprašymus', 'pages_edit_enter_changelog_desc' => 'Įveskite trumpus, jūsų atliktus, pokyčių aprašymus',
'pages_edit_enter_changelog' => 'Įeiti į keitimo žurnalą', 'pages_edit_enter_changelog' => 'Įeiti į keitimo žurnalą',
'pages_editor_switch_title' => 'Switch Editor',
'pages_editor_switch_are_you_sure' => 'Are you sure you want to change the editor for this page?',
'pages_editor_switch_consider_following' => 'Consider the following when changing editors:',
'pages_editor_switch_consideration_a' => 'Once saved, the new editor option will be used by any future editors, including those that may not be able to change editor type themselves.',
'pages_editor_switch_consideration_b' => 'This can potentially lead to a loss of detail and syntax in certain circumstances.',
'pages_editor_switch_consideration_c' => 'Tag or changelog changes, made since last save, won\'t persist across this change.',
'pages_save' => 'Išsaugoti puslapį', 'pages_save' => 'Išsaugoti puslapį',
'pages_title' => 'Puslapio antraštė', 'pages_title' => 'Puslapio antraštė',
'pages_name' => 'Puslapio pavadinimas', 'pages_name' => 'Puslapio pavadinimas',
@ -225,6 +235,7 @@ return [
'pages_revisions_number' => '#', 'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'Peržiūra #:id', 'pages_revisions_numbered' => 'Peržiūra #:id',
'pages_revisions_numbered_changes' => 'Peržiūros #:id pokyčiai', 'pages_revisions_numbered_changes' => 'Peržiūros #:id pokyčiai',
'pages_revisions_editor' => 'Editor Type',
'pages_revisions_changelog' => 'Keitimo žurnalas', 'pages_revisions_changelog' => 'Keitimo žurnalas',
'pages_revisions_changes' => 'Pakeitimai', 'pages_revisions_changes' => 'Pakeitimai',
'pages_revisions_current' => 'Dabartinė versija', 'pages_revisions_current' => 'Dabartinė versija',

Some files were not shown because too many files have changed in this diff Show More