Merge branch 'development' into release

This commit is contained in:
Dan Brown 2023-05-03 11:03:29 +01:00
commit 0f895668a4
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
325 changed files with 7971 additions and 5600 deletions

View File

@ -3,6 +3,10 @@
# Each option is shown with it's default value. # Each option is shown with it's default value.
# Do not copy this whole file to use as your '.env' file. # Do not copy this whole file to use as your '.env' file.
# The details here only serve as a quick reference.
# Please refer to the BookStack documentation for full details:
# https://www.bookstackapp.com/docs/
# Application environment # Application environment
# Can be 'production', 'development', 'testing' or 'demo' # Can be 'production', 'development', 'testing' or 'demo'
APP_ENV=production APP_ENV=production
@ -79,6 +83,7 @@ MAIL_PORT=1025
MAIL_USERNAME=null MAIL_USERNAME=null
MAIL_PASSWORD=null MAIL_PASSWORD=null
MAIL_ENCRYPTION=null MAIL_ENCRYPTION=null
MAIL_VERIFY_SSL=true
# Command to use when email is sent via sendmail # Command to use when email is sent via sendmail
MAIL_SENDMAIL_COMMAND="/usr/sbin/sendmail -bs" MAIL_SENDMAIL_COMMAND="/usr/sbin/sendmail -bs"
@ -322,6 +327,13 @@ FILE_UPLOAD_SIZE_LIMIT=50
# Can be 'a4' or 'letter'. # Can be 'a4' or 'letter'.
EXPORT_PAGE_SIZE=a4 EXPORT_PAGE_SIZE=a4
# Set path to wkhtmltopdf binary for PDF generation.
# Can be 'false' or a path path like: '/home/bins/wkhtmltopdf'
# When false, BookStack will attempt to find a wkhtmltopdf in the application
# root folder then fall back to the default dompdf renderer if no binary exists.
# Only used if 'ALLOW_UNTRUSTED_SERVER_FETCHING=true' which disables security protections.
WKHTMLTOPDF=false
# Allow <script> tags in page content # Allow <script> tags in page content
# Note, if set to 'true' the page editor may still escape scripts. # Note, if set to 'true' the page editor may still escape scripts.
ALLOW_CONTENT_SCRIPTS=false ALLOW_CONTENT_SCRIPTS=false
@ -372,4 +384,4 @@ LOG_FAILED_LOGIN_CHANNEL=errorlog_plain_webserver
# IP address '146.191.42.4' would result in '146.191.x.x' being logged. # IP address '146.191.42.4' would result in '146.191.x.x' being logged.
# For the IPv6 address '2001:db8:85a3:8d3:1319:8a2e:370:7348' this would result as: # For the IPv6 address '2001:db8:85a3:8d3:1319:8a2e:370:7348' this would result as:
# '2001:db8:85a3:8d3:x:x:x:x' # '2001:db8:85a3:8d3:x:x:x:x'
IP_ADDRESS_PRECISION=4 IP_ADDRESS_PRECISION=4

View File

@ -320,3 +320,10 @@ kostasdizas :: Greek
Ricardo Schroeder (brownstone666) :: Portuguese, Brazilian Ricardo Schroeder (brownstone666) :: Portuguese, Brazilian
Eitan MG (EitanMG) :: Hebrew Eitan MG (EitanMG) :: Hebrew
Robin Flikkema (RobinFlikkema) :: Dutch Robin Flikkema (RobinFlikkema) :: Dutch
Michal Gurcik (mgurcik) :: Slovak
Pooyan Arab (pooyanarab) :: Persian
Ochi Darma Putra (troke12) :: Indonesian
H.-H. Peng (Hsins) :: Chinese Traditional
Mosi Wang (mosiwang) :: Chinese Traditional
骆言 (LawssssCat) :: Chinese Simplified
Stickers Gaming Shøw (StickerSGSHOW) :: French

16
.github/workflows/lint-js.yml vendored Normal file
View File

@ -0,0 +1,16 @@
name: lint-js
on: [push, pull_request]
jobs:
build:
if: ${{ github.ref != 'refs/heads/l10n_development' }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v1
- name: Install NPM deps
run: npm ci
- name: Run formatting check
run: npm run lint

6
.gitignore vendored
View File

@ -1,5 +1,7 @@
/vendor /vendor
/node_modules /node_modules
/.vscode
/composer
Homestead.yaml Homestead.yaml
.env .env
.idea .idea
@ -21,8 +23,10 @@ yarn.lock
nbproject nbproject
.buildpath .buildpath
.project .project
.nvmrc
.settings/ .settings/
webpack-stats.json webpack-stats.json
.phpunit.result.cache .phpunit.result.cache
.DS_Store .DS_Store
phpstan.neon phpstan.neon
esbuild-meta.json

View File

@ -8,8 +8,8 @@ use BookStack\Notifications\ConfirmEmail;
class EmailConfirmationService extends UserTokenService class EmailConfirmationService extends UserTokenService
{ {
protected $tokenTable = 'email_confirmations'; protected string $tokenTable = 'email_confirmations';
protected $expiryTime = 24; protected int $expiryTime = 24;
/** /**
* Create new confirmation for a user, * Create new confirmation for a user,

View File

@ -4,35 +4,16 @@ namespace BookStack\Auth\Access\Oidc;
class OidcIdToken class OidcIdToken
{ {
/** protected array $header;
* @var array protected array $payload;
*/ protected string $signature;
protected $header; protected string $issuer;
protected array $tokenParts = [];
/**
* @var array
*/
protected $payload;
/**
* @var string
*/
protected $signature;
/** /**
* @var array[]|string[] * @var array[]|string[]
*/ */
protected $keys; protected array $keys;
/**
* @var string
*/
protected $issuer;
/**
* @var array
*/
protected $tokenParts = [];
public function __construct(string $token, string $issuer, array $keys) public function __construct(string $token, string $issuer, array $keys)
{ {
@ -106,6 +87,14 @@ class OidcIdToken
return $this->payload; return $this->payload;
} }
/**
* Replace the existing claim data of this token with that provided.
*/
public function replaceClaims(array $claims): void
{
$this->payload = $claims;
}
/** /**
* Validate the structure of the given token and ensure we have the required pieces. * Validate the structure of the given token and ensure we have the required pieces.
* As per https://datatracker.ietf.org/doc/html/rfc7519#section-7.2. * As per https://datatracker.ietf.org/doc/html/rfc7519#section-7.2.

View File

@ -9,6 +9,8 @@ use BookStack\Auth\User;
use BookStack\Exceptions\JsonDebugException; use BookStack\Exceptions\JsonDebugException;
use BookStack\Exceptions\StoppedAuthenticationException; use BookStack\Exceptions\StoppedAuthenticationException;
use BookStack\Exceptions\UserRegistrationException; use BookStack\Exceptions\UserRegistrationException;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use League\OAuth2\Client\OptionProvider\HttpBasicAuthOptionProvider; use League\OAuth2\Client\OptionProvider\HttpBasicAuthOptionProvider;
@ -21,24 +23,12 @@ use Psr\Http\Client\ClientInterface as HttpClient;
*/ */
class OidcService class OidcService
{ {
protected RegistrationService $registrationService;
protected LoginService $loginService;
protected HttpClient $httpClient;
protected GroupSyncService $groupService;
/**
* OpenIdService constructor.
*/
public function __construct( public function __construct(
RegistrationService $registrationService, protected RegistrationService $registrationService,
LoginService $loginService, protected LoginService $loginService,
HttpClient $httpClient, protected HttpClient $httpClient,
GroupSyncService $groupService protected GroupSyncService $groupService
) { ) {
$this->registrationService = $registrationService;
$this->loginService = $loginService;
$this->httpClient = $httpClient;
$this->groupService = $groupService;
} }
/** /**
@ -226,6 +216,16 @@ class OidcService
$settings->keys, $settings->keys,
); );
$returnClaims = Theme::dispatch(ThemeEvents::OIDC_ID_TOKEN_PRE_VALIDATE, $idToken->getAllClaims(), [
'access_token' => $accessToken->getToken(),
'expires_in' => $accessToken->getExpires(),
'refresh_token' => $accessToken->getRefreshToken(),
]);
if (!is_null($returnClaims)) {
$idToken->replaceClaims($returnClaims);
}
if ($this->config()['dump_user_details']) { if ($this->config()['dump_user_details']) {
throw new JsonDebugException($idToken->getAllClaims()); throw new JsonDebugException($idToken->getAllClaims());
} }

View File

@ -67,7 +67,7 @@ class Saml2Service
$returnRoute, $returnRoute,
[], [],
$user->email, $user->email,
null, session()->get('saml2_session_index'),
true, true,
Constants::NAMEID_EMAIL_ADDRESS Constants::NAMEID_EMAIL_ADDRESS
); );
@ -118,6 +118,7 @@ class Saml2Service
$attrs = $toolkit->getAttributes(); $attrs = $toolkit->getAttributes();
$id = $toolkit->getNameId(); $id = $toolkit->getNameId();
session()->put('saml2_session_index', $toolkit->getSessionIndex());
return $this->processLoginCallback($id, $attrs); return $this->processLoginCallback($id, $attrs);
} }

View File

@ -7,14 +7,12 @@ use BookStack\Notifications\UserInvite;
class UserInviteService extends UserTokenService class UserInviteService extends UserTokenService
{ {
protected $tokenTable = 'user_invites'; protected string $tokenTable = 'user_invites';
protected $expiryTime = 336; // Two weeks protected int $expiryTime = 336; // Two weeks
/** /**
* Send an invitation to a user to sign into BookStack * Send an invitation to a user to sign into BookStack
* Removes existing invitation tokens. * Removes existing invitation tokens.
*
* @param User $user
*/ */
public function sendInvitation(User $user) public function sendInvitation(User $user)
{ {

View File

@ -14,41 +14,29 @@ class UserTokenService
{ {
/** /**
* Name of table where user tokens are stored. * Name of table where user tokens are stored.
*
* @var string
*/ */
protected $tokenTable = 'user_tokens'; protected string $tokenTable = 'user_tokens';
/** /**
* Token expiry time in hours. * Token expiry time in hours.
*
* @var int
*/ */
protected $expiryTime = 24; protected int $expiryTime = 24;
/** /**
* Delete all email confirmations that belong to a user. * Delete all tokens that belong to a user.
*
* @param User $user
*
* @return mixed
*/ */
public function deleteByUser(User $user) public function deleteByUser(User $user): void
{ {
return DB::table($this->tokenTable) DB::table($this->tokenTable)
->where('user_id', '=', $user->id) ->where('user_id', '=', $user->id)
->delete(); ->delete();
} }
/** /**
* Get the user id from a token, while check the token exists and has not expired. * Get the user id from a token, while checking the token exists and has not expired.
*
* @param string $token
* *
* @throws UserTokenNotFoundException * @throws UserTokenNotFoundException
* @throws UserTokenExpiredException * @throws UserTokenExpiredException
*
* @return int
*/ */
public function checkTokenAndGetUserId(string $token): int public function checkTokenAndGetUserId(string $token): int
{ {
@ -67,8 +55,6 @@ class UserTokenService
/** /**
* Creates a unique token within the email confirmation database. * Creates a unique token within the email confirmation database.
*
* @return string
*/ */
protected function generateToken(): string protected function generateToken(): string
{ {
@ -82,10 +68,6 @@ class UserTokenService
/** /**
* Generate and store a token for the given user. * Generate and store a token for the given user.
*
* @param User $user
*
* @return string
*/ */
protected function createTokenForUser(User $user): string protected function createTokenForUser(User $user): string
{ {
@ -102,10 +84,6 @@ class UserTokenService
/** /**
* Check if the given token exists. * Check if the given token exists.
*
* @param string $token
*
* @return bool
*/ */
protected function tokenExists(string $token): bool protected function tokenExists(string $token): bool
{ {
@ -115,12 +93,8 @@ class UserTokenService
/** /**
* Get a token entry for the given token. * Get a token entry for the given token.
*
* @param string $token
*
* @return object|null
*/ */
protected function getEntryByToken(string $token) protected function getEntryByToken(string $token): ?stdClass
{ {
return DB::table($this->tokenTable) return DB::table($this->tokenTable)
->where('token', '=', $token) ->where('token', '=', $token)
@ -129,10 +103,6 @@ class UserTokenService
/** /**
* Check if the given token entry has expired. * Check if the given token entry has expired.
*
* @param stdClass $tokenEntry
*
* @return bool
*/ */
protected function entryExpired(stdClass $tokenEntry): bool protected function entryExpired(stdClass $tokenEntry): bool
{ {

View File

@ -5,7 +5,6 @@ namespace BookStack\Auth\Permissions;
use BookStack\Auth\Role; use BookStack\Auth\Role;
use BookStack\Model; use BookStack\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphTo;
/** /**
* @property int $id * @property int $id
@ -23,14 +22,14 @@ class EntityPermission extends Model
protected $fillable = ['role_id', 'view', 'create', 'update', 'delete']; protected $fillable = ['role_id', 'view', 'create', 'update', 'delete'];
public $timestamps = false; public $timestamps = false;
protected $hidden = ['entity_id', 'entity_type', 'id'];
/** protected $casts = [
* Get this restriction's attached entity. 'view' => 'boolean',
*/ 'create' => 'boolean',
public function restrictable(): MorphTo 'read' => 'boolean',
{ 'update' => 'boolean',
return $this->morphTo('restrictable'); 'delete' => 'boolean',
} ];
/** /**
* Get the role assigned to this entity permission. * Get the role assigned to this entity permission.

View File

@ -32,6 +32,7 @@ return [
'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'), 'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'), 'password' => env('MAIL_PASSWORD'),
'verify_peer' => env('MAIL_VERIFY_SSL', true),
'timeout' => null, 'timeout' => null,
'local_domain' => env('MAIL_EHLO_DOMAIN'), 'local_domain' => env('MAIL_EHLO_DOMAIN'),
], ],

View File

@ -18,30 +18,11 @@ use BookStack\Entities\Models\PageRevision;
*/ */
class EntityProvider class EntityProvider
{ {
/** public Bookshelf $bookshelf;
* @var Bookshelf public Book $book;
*/ public Chapter $chapter;
public $bookshelf; public Page $page;
public PageRevision $pageRevision;
/**
* @var Book
*/
public $book;
/**
* @var Chapter
*/
public $chapter;
/**
* @var Page
*/
public $page;
/**
* @var PageRevision
*/
public $pageRevision;
public function __construct() public function __construct()
{ {
@ -69,13 +50,18 @@ class EntityProvider
} }
/** /**
* Get an entity instance by it's basic name. * Get an entity instance by its basic name.
*/ */
public function get(string $type): Entity public function get(string $type): Entity
{ {
$type = strtolower($type); $type = strtolower($type);
$instance = $this->all()[$type] ?? null;
return $this->all()[$type]; if (is_null($instance)) {
throw new \InvalidArgumentException("Provided type \"{$type}\" is not a valid entity type");
}
return $instance;
} }
/** /**

View File

@ -304,7 +304,9 @@ class PageContent
if ($blankIncludes) { if ($blankIncludes) {
$content = $this->blankPageIncludes($content); $content = $this->blankPageIncludes($content);
} else { } else {
$content = $this->parsePageIncludes($content); for ($includeDepth = 0; $includeDepth < 3; $includeDepth++) {
$content = $this->parsePageIncludes($content);
}
} }
return $content; return $content;

View File

@ -4,20 +4,20 @@ namespace BookStack\Entities\Tools;
use BookStack\Actions\ActivityType; use BookStack\Actions\ActivityType;
use BookStack\Auth\Permissions\EntityPermission; use BookStack\Auth\Permissions\EntityPermission;
use BookStack\Auth\Role;
use BookStack\Auth\User; use BookStack\Auth\User;
use BookStack\Entities\Models\Book; use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf; use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Entity; use BookStack\Entities\Models\Entity;
use BookStack\Facades\Activity; use BookStack\Facades\Activity;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Collection;
class PermissionsUpdater class PermissionsUpdater
{ {
/** /**
* Update an entities permissions from a permission form submit request. * Update an entities permissions from a permission form submit request.
*/ */
public function updateFromPermissionsForm(Entity $entity, Request $request) public function updateFromPermissionsForm(Entity $entity, Request $request): void
{ {
$permissions = $request->get('permissions', null); $permissions = $request->get('permissions', null);
$ownerId = $request->get('owned_by', null); $ownerId = $request->get('owned_by', null);
@ -39,12 +39,44 @@ class PermissionsUpdater
Activity::add(ActivityType::PERMISSIONS_UPDATE, $entity); Activity::add(ActivityType::PERMISSIONS_UPDATE, $entity);
} }
/**
* Update permissions from API request data.
*/
public function updateFromApiRequestData(Entity $entity, array $data): void
{
if (isset($data['role_permissions'])) {
$entity->permissions()->where('role_id', '!=', 0)->delete();
$rolePermissionData = $this->formatPermissionsFromApiRequestToEntityPermissions($data['role_permissions'] ?? [], false);
$entity->permissions()->createMany($rolePermissionData);
}
if (array_key_exists('fallback_permissions', $data)) {
$entity->permissions()->where('role_id', '=', 0)->delete();
}
if (isset($data['fallback_permissions']['inheriting']) && $data['fallback_permissions']['inheriting'] !== true) {
$data = $data['fallback_permissions'];
$data['role_id'] = 0;
$rolePermissionData = $this->formatPermissionsFromApiRequestToEntityPermissions([$data], true);
$entity->permissions()->createMany($rolePermissionData);
}
if (isset($data['owner_id'])) {
$this->updateOwnerFromId($entity, intval($data['owner_id']));
}
$entity->save();
$entity->rebuildPermissions();
Activity::add(ActivityType::PERMISSIONS_UPDATE, $entity);
}
/** /**
* Update the owner of the given entity. * Update the owner of the given entity.
* Checks the user exists in the system first. * Checks the user exists in the system first.
* Does not save the model, just updates it. * Does not save the model, just updates it.
*/ */
protected function updateOwnerFromId(Entity $entity, int $newOwnerId) protected function updateOwnerFromId(Entity $entity, int $newOwnerId): void
{ {
$newOwner = User::query()->find($newOwnerId); $newOwner = User::query()->find($newOwnerId);
if (!is_null($newOwner)) { if (!is_null($newOwner)) {
@ -67,7 +99,41 @@ class PermissionsUpdater
$formatted[] = $entityPermissionData; $formatted[] = $entityPermissionData;
} }
return $formatted; return $this->filterEntityPermissionDataUponRole($formatted, true);
}
protected function formatPermissionsFromApiRequestToEntityPermissions(array $permissions, bool $allowFallback): array
{
$formatted = [];
foreach ($permissions as $requestPermissionData) {
$entityPermissionData = ['role_id' => $requestPermissionData['role_id']];
foreach (EntityPermission::PERMISSIONS as $permission) {
$entityPermissionData[$permission] = boolval($requestPermissionData[$permission] ?? false);
}
$formatted[] = $entityPermissionData;
}
return $this->filterEntityPermissionDataUponRole($formatted, $allowFallback);
}
protected function filterEntityPermissionDataUponRole(array $entityPermissionData, bool $allowFallback): array
{
$roleIds = [];
foreach ($entityPermissionData as $permissionEntry) {
$roleIds[] = intval($permissionEntry['role_id']);
}
$actualRoleIds = array_unique(array_values(array_filter($roleIds)));
$rolesById = Role::query()->whereIn('id', $actualRoleIds)->get('id')->keyBy('id');
return array_values(array_filter($entityPermissionData, function ($data) use ($rolesById, $allowFallback) {
if (intval($data['role_id']) === 0) {
return $allowFallback;
}
return $rolesById->has($data['role_id']);
}));
} }
/** /**

View File

@ -0,0 +1,100 @@
<?php
namespace BookStack\Http\Controllers\Api;
use BookStack\Entities\EntityProvider;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Tools\PermissionsUpdater;
use Illuminate\Http\Request;
class ContentPermissionApiController extends ApiController
{
public function __construct(
protected PermissionsUpdater $permissionsUpdater,
protected EntityProvider $entities
) {
}
protected $rules = [
'update' => [
'owner_id' => ['int'],
'role_permissions' => ['array'],
'role_permissions.*.role_id' => ['required', 'int', 'exists:roles,id'],
'role_permissions.*.view' => ['required', 'boolean'],
'role_permissions.*.create' => ['required', 'boolean'],
'role_permissions.*.update' => ['required', 'boolean'],
'role_permissions.*.delete' => ['required', 'boolean'],
'fallback_permissions' => ['nullable'],
'fallback_permissions.inheriting' => ['required_with:fallback_permissions', 'boolean'],
'fallback_permissions.view' => ['required_if:fallback_permissions.inheriting,false', 'boolean'],
'fallback_permissions.create' => ['required_if:fallback_permissions.inheriting,false', 'boolean'],
'fallback_permissions.update' => ['required_if:fallback_permissions.inheriting,false', 'boolean'],
'fallback_permissions.delete' => ['required_if:fallback_permissions.inheriting,false', 'boolean'],
]
];
/**
* Read the configured content-level permissions for the item of the given type and ID.
* 'contentType' should be one of: page, book, chapter, bookshelf.
* 'contentId' should be the relevant ID of that item type you'd like to handle permissions for.
* The permissions shown are those that override the default for just the specified item, they do not show the
* full evaluated permission for a role, nor do they reflect permissions inherited from other items in the hierarchy.
* Fallback permission values may be `null` when inheriting is active.
*/
public function read(string $contentType, string $contentId)
{
$entity = $this->entities->get($contentType)
->newQuery()->scopes(['visible'])->findOrFail($contentId);
$this->checkOwnablePermission('restrictions-manage', $entity);
return response()->json($this->formattedPermissionDataForEntity($entity));
}
/**
* Update the configured content-level permission overrides for the item of the given type and ID.
* 'contentType' should be one of: page, book, chapter, bookshelf.
* 'contentId' should be the relevant ID of that item type you'd like to handle permissions for.
* Providing an empty `role_permissions` array will remove any existing configured role permissions,
* so you may want to fetch existing permissions beforehand if just adding/removing a single item.
* You should completely omit the `owner_id`, `role_permissions` and/or the `fallback_permissions` properties
* from your request data if you don't wish to update details within those categories.
*/
public function update(Request $request, string $contentType, string $contentId)
{
$entity = $this->entities->get($contentType)
->newQuery()->scopes(['visible'])->findOrFail($contentId);
$this->checkOwnablePermission('restrictions-manage', $entity);
$data = $this->validate($request, $this->rules()['update']);
$this->permissionsUpdater->updateFromApiRequestData($entity, $data);
return response()->json($this->formattedPermissionDataForEntity($entity));
}
protected function formattedPermissionDataForEntity(Entity $entity): array
{
$rolePermissions = $entity->permissions()
->where('role_id', '!=', 0)
->with(['role:id,display_name'])
->get();
$fallback = $entity->permissions()->where('role_id', '=', 0)->first();
$fallbackData = [
'inheriting' => is_null($fallback),
'view' => $fallback->view ?? null,
'create' => $fallback->create ?? null,
'update' => $fallback->update ?? null,
'delete' => $fallback->delete ?? null,
];
return [
'owner' => $entity->ownedBy()->first(),
'role_permissions' => $rolePermissions,
'fallback_permissions' => $fallbackData,
];
}
}

View File

@ -0,0 +1,146 @@
<?php
namespace BookStack\Http\Controllers\Api;
use BookStack\Entities\Models\Page;
use BookStack\Uploads\Image;
use BookStack\Uploads\ImageRepo;
use Illuminate\Http\Request;
class ImageGalleryApiController extends ApiController
{
protected array $fieldsToExpose = [
'id', 'name', 'url', 'path', 'type', 'uploaded_to', 'created_by', 'updated_by', 'created_at', 'updated_at',
];
public function __construct(
protected ImageRepo $imageRepo
) {
}
protected function rules(): array
{
return [
'create' => [
'type' => ['required', 'string', 'in:gallery,drawio'],
'uploaded_to' => ['required', 'integer'],
'image' => ['required', 'file', ...$this->getImageValidationRules()],
'name' => ['string', 'max:180'],
],
'update' => [
'name' => ['string', 'max:180'],
]
];
}
/**
* Get a listing of images in the system. Includes gallery (page content) images and drawings.
* Requires visibility of the page they're originally uploaded to.
*/
public function list()
{
$images = Image::query()->scopes(['visible'])
->select($this->fieldsToExpose)
->whereIn('type', ['gallery', 'drawio']);
return $this->apiListingResponse($images, [
...$this->fieldsToExpose
]);
}
/**
* Create a new image in the system.
* Since "image" is expected to be a file, this needs to be a 'multipart/form-data' type request.
* The provided "uploaded_to" should be an existing page ID in the system.
* If the "name" parameter is omitted, the filename of the provided image file will be used instead.
* The "type" parameter should be 'gallery' for page content images, and 'drawio' should only be used
* when the file is a PNG file with diagrams.net image data embedded within.
*/
public function create(Request $request)
{
$this->checkPermission('image-create-all');
$data = $this->validate($request, $this->rules()['create']);
Page::visible()->findOrFail($data['uploaded_to']);
$image = $this->imageRepo->saveNew($data['image'], $data['type'], $data['uploaded_to']);
if (isset($data['name'])) {
$image->refresh();
$image->update(['name' => $data['name']]);
}
return response()->json($this->formatForSingleResponse($image));
}
/**
* View the details of a single image.
* The "thumbs" response property contains links to scaled variants that BookStack may use in its UI.
* The "content" response property provides HTML and Markdown content, in the format that BookStack
* would typically use by default to add the image in page content, as a convenience.
* Actual image file data is not provided but can be fetched via the "url" response property.
*/
public function read(string $id)
{
$image = Image::query()->scopes(['visible'])->findOrFail($id);
return response()->json($this->formatForSingleResponse($image));
}
/**
* Update the details of an existing image in the system.
* Only allows updating of the image name at this time.
*/
public function update(Request $request, string $id)
{
$data = $this->validate($request, $this->rules()['update']);
$image = $this->imageRepo->getById($id);
$this->checkOwnablePermission('page-view', $image->getPage());
$this->checkOwnablePermission('image-update', $image);
$this->imageRepo->updateImageDetails($image, $data);
return response()->json($this->formatForSingleResponse($image));
}
/**
* Delete an image from the system.
* Will also delete thumbnails for the image.
* Does not check or handle image usage so this could leave pages with broken image references.
*/
public function delete(string $id)
{
$image = $this->imageRepo->getById($id);
$this->checkOwnablePermission('page-view', $image->getPage());
$this->checkOwnablePermission('image-delete', $image);
$this->imageRepo->destroyImage($image);
return response('', 204);
}
/**
* Format the given image model for single-result display.
*/
protected function formatForSingleResponse(Image $image): array
{
$this->imageRepo->loadThumbs($image);
$data = $image->getAttributes();
$data['created_by'] = $image->createdBy;
$data['updated_by'] = $image->updatedBy;
$data['content'] = [];
$escapedUrl = htmlentities($image->url);
$escapedName = htmlentities($image->name);
if ($image->type === 'drawio') {
$data['content']['html'] = "<div drawio-diagram=\"{$image->id}\"><img src=\"{$escapedUrl}\"></div>";
$data['content']['markdown'] = $data['content']['html'];
} else {
$escapedDisplayThumb = htmlentities($image->thumbs['display']);
$data['content']['html'] = "<a href=\"{$escapedUrl}\" target=\"_blank\"><img src=\"{$escapedDisplayThumb}\" alt=\"{$escapedName}\"></a>";
$mdEscapedName = str_replace(']', '', str_replace('[', '', $image->name));
$mdEscapedThumb = str_replace(']', '', str_replace('[', '', $image->thumbs['display']));
$data['content']['markdown'] = "![{$mdEscapedName}]({$mdEscapedThumb})";
}
return $data;
}
}

View File

@ -88,10 +88,10 @@ class RoleApiController extends ApiController
*/ */
public function read(string $id) public function read(string $id)
{ {
$user = $this->permissionsRepo->getRoleById($id); $role = $this->permissionsRepo->getRoleById($id);
$this->singleFormatter($user); $this->singleFormatter($role);
return response()->json($user); return response()->json($role);
} }
/** /**

View File

@ -14,21 +14,11 @@ use Illuminate\Http\Request;
class ConfirmEmailController extends Controller class ConfirmEmailController extends Controller
{ {
protected EmailConfirmationService $emailConfirmationService;
protected LoginService $loginService;
protected UserRepo $userRepo;
/**
* Create a new controller instance.
*/
public function __construct( public function __construct(
EmailConfirmationService $emailConfirmationService, protected EmailConfirmationService $emailConfirmationService,
LoginService $loginService, protected LoginService $loginService,
UserRepo $userRepo protected UserRepo $userRepo
) { ) {
$this->emailConfirmationService = $emailConfirmationService;
$this->loginService = $loginService;
$this->userRepo = $userRepo;
} }
/** /**

View File

@ -10,14 +10,9 @@ use Illuminate\Validation\ValidationException;
class GalleryImageController extends Controller class GalleryImageController extends Controller
{ {
protected $imageRepo; public function __construct(
protected ImageRepo $imageRepo
/** ) {
* GalleryImageController constructor.
*/
public function __construct(ImageRepo $imageRepo)
{
$this->imageRepo = $imageRepo;
} }
/** /**
@ -47,9 +42,14 @@ class GalleryImageController extends Controller
public function create(Request $request) public function create(Request $request)
{ {
$this->checkPermission('image-create-all'); $this->checkPermission('image-create-all');
$this->validate($request, [
'file' => $this->getImageValidationRules(), try {
]); $this->validate($request, [
'file' => $this->getImageValidationRules(),
]);
} catch (ValidationException $exception) {
return $this->jsonError(implode("\n", $exception->errors()['file']));
}
try { try {
$imageUpload = $request->file('file'); $imageUpload = $request->file('file');

View File

@ -173,6 +173,7 @@ class SearchRunner
// Handle exact term matching // Handle exact term matching
foreach ($searchOpts->exacts as $inputTerm) { foreach ($searchOpts->exacts as $inputTerm) {
$entityQuery->where(function (EloquentBuilder $query) use ($inputTerm, $entityModelInstance) { $entityQuery->where(function (EloquentBuilder $query) use ($inputTerm, $entityModelInstance) {
$inputTerm = str_replace('\\', '\\\\', $inputTerm);
$query->where('name', 'like', '%' . $inputTerm . '%') $query->where('name', 'like', '%' . $inputTerm . '%')
->orWhere($entityModelInstance->textField, 'like', '%' . $inputTerm . '%'); ->orWhere($entityModelInstance->textField, 'like', '%' . $inputTerm . '%');
}); });
@ -218,6 +219,7 @@ class SearchRunner
$subQuery->where('entity_type', '=', $entity->getMorphClass()); $subQuery->where('entity_type', '=', $entity->getMorphClass());
$subQuery->where(function (Builder $query) use ($terms) { $subQuery->where(function (Builder $query) use ($terms) {
foreach ($terms as $inputTerm) { foreach ($terms as $inputTerm) {
$inputTerm = str_replace('\\', '\\\\', $inputTerm);
$query->orWhere('term', 'like', $inputTerm . '%'); $query->orWhere('term', 'like', $inputTerm . '%');
} }
}); });
@ -354,6 +356,9 @@ class SearchRunner
$tagValue = (float) trim($connection->getPdo()->quote($tagValue), "'"); $tagValue = (float) trim($connection->getPdo()->quote($tagValue), "'");
$query->whereRaw("value {$tagOperator} {$tagValue}"); $query->whereRaw("value {$tagOperator} {$tagValue}");
} else { } else {
if ($tagOperator === 'like') {
$tagValue = str_replace('\\', '\\\\', $tagValue);
}
$query->where('value', $tagOperator, $tagValue); $query->where('value', $tagOperator, $tagValue);
} }
} else { } else {

View File

@ -70,6 +70,19 @@ class ThemeEvents
*/ */
const COMMONMARK_ENVIRONMENT_CONFIGURE = 'commonmark_environment_configure'; const COMMONMARK_ENVIRONMENT_CONFIGURE = 'commonmark_environment_configure';
/**
* OIDC ID token pre-validate event.
* Runs just before BookStack validates the user ID token data upon login.
* Provides the existing found set of claims for the user as a key-value array,
* along with an array of the proceeding access token data provided by the identity platform.
* If the listener returns a non-null value, that will replace the existing ID token claim data.
*
* @param array $idTokenData
* @param array $accessTokenData
* @returns array|null
*/
const OIDC_ID_TOKEN_PRE_VALIDATE = 'oidc_id_token_pre_validate';
/** /**
* Page include parse event. * Page include parse event.
* Runs when a page include tag is being parsed, typically when page content is being processed for viewing. * Runs when a page include tag is being parsed, typically when page content is being processed for viewing.

View File

@ -3,9 +3,11 @@
namespace BookStack\Uploads; namespace BookStack\Uploads;
use BookStack\Auth\Permissions\JointPermission; use BookStack\Auth\Permissions\JointPermission;
use BookStack\Auth\Permissions\PermissionApplicator;
use BookStack\Entities\Models\Page; use BookStack\Entities\Models\Page;
use BookStack\Model; use BookStack\Model;
use BookStack\Traits\HasCreatorAndUpdater; use BookStack\Traits\HasCreatorAndUpdater;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
@ -33,12 +35,21 @@ class Image extends Model
->where('joint_permissions.entity_type', '=', 'page'); ->where('joint_permissions.entity_type', '=', 'page');
} }
/**
* Scope the query to just the images visible to the user based upon the
* user visibility of the uploaded_to page.
*/
public function scopeVisible(Builder $query): Builder
{
return app()->make(PermissionApplicator::class)->restrictPageRelationQuery($query, 'images', 'uploaded_to');
}
/** /**
* Get a thumbnail for this image. * Get a thumbnail for this image.
* *
* @throws \Exception * @throws \Exception
*/ */
public function getThumb(int $width, int $height, bool $keepRatio = false): string public function getThumb(?int $width, ?int $height, bool $keepRatio = false): string
{ {
return app()->make(ImageService::class)->getThumbnail($this, $width, $height, $keepRatio); return app()->make(ImageService::class)->getThumbnail($this, $width, $height, $keepRatio);
} }

View File

@ -147,7 +147,7 @@ function icon(string $name, array $attrs = []): string
} }
/** /**
* Generate a url with multiple parameters for sorting purposes. * Generate a URL with multiple parameters for sorting purposes.
* Works out the logic to set the correct sorting direction * Works out the logic to set the correct sorting direction
* Discards empty parameters and allows overriding. * Discards empty parameters and allows overriding.
*/ */
@ -172,7 +172,7 @@ function sortUrl(string $path, array $data, array $overrideData = []): string
} }
if (count($queryStringSections) === 0) { if (count($queryStringSections) === 0) {
return $path; return url($path);
} }
return url($path . '?' . implode('&', $queryStringSections)); return url($path . '?' . implode('&', $queryStringSections));

BIN
bookstack-system-cli Executable file

Binary file not shown.

308
composer.lock generated
View File

@ -8,23 +8,27 @@
"packages": [ "packages": [
{ {
"name": "aws/aws-crt-php", "name": "aws/aws-crt-php",
"version": "v1.0.4", "version": "v1.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/awslabs/aws-crt-php.git", "url": "https://github.com/awslabs/aws-crt-php.git",
"reference": "f5c64ee7c5fce196e2519b3d9b7138649efe032d" "reference": "1926277fc71d253dfa820271ac5987bdb193ccf5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/f5c64ee7c5fce196e2519b3d9b7138649efe032d", "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/1926277fc71d253dfa820271ac5987bdb193ccf5",
"reference": "f5c64ee7c5fce196e2519b3d9b7138649efe032d", "reference": "1926277fc71d253dfa820271ac5987bdb193ccf5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5" "php": ">=5.5"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.8.35|^5.6.3" "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
"yoast/phpunit-polyfills": "^1.0"
},
"suggest": {
"ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -43,7 +47,7 @@
} }
], ],
"description": "AWS Common Runtime for PHP", "description": "AWS Common Runtime for PHP",
"homepage": "http://aws.amazon.com/sdkforphp", "homepage": "https://github.com/awslabs/aws-crt-php",
"keywords": [ "keywords": [
"amazon", "amazon",
"aws", "aws",
@ -52,22 +56,22 @@
], ],
"support": { "support": {
"issues": "https://github.com/awslabs/aws-crt-php/issues", "issues": "https://github.com/awslabs/aws-crt-php/issues",
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.0.4" "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.1"
}, },
"time": "2023-01-31T23:08:25+00:00" "time": "2023-03-24T20:22:19+00:00"
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.262.0", "version": "3.269.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "f45eefe4735d5a16ecc44cfd9a6c29421ae1e802" "reference": "6d759ef9f24f0c7f271baf8014f41fc0cfdfbf78"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f45eefe4735d5a16ecc44cfd9a6c29421ae1e802", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/6d759ef9f24f0c7f271baf8014f41fc0cfdfbf78",
"reference": "f45eefe4735d5a16ecc44cfd9a6c29421ae1e802", "reference": "6d759ef9f24f0c7f271baf8014f41fc0cfdfbf78",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -77,7 +81,7 @@
"ext-simplexml": "*", "ext-simplexml": "*",
"guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
"guzzlehttp/promises": "^1.4.0", "guzzlehttp/promises": "^1.4.0",
"guzzlehttp/psr7": "^1.8.5 || ^2.3", "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
"mtdowling/jmespath.php": "^2.6", "mtdowling/jmespath.php": "^2.6",
"php": ">=5.5" "php": ">=5.5"
}, },
@ -96,6 +100,7 @@
"paragonie/random_compat": ">= 2", "paragonie/random_compat": ">= 2",
"phpunit/phpunit": "^4.8.35 || ^5.6.3 || ^9.5", "phpunit/phpunit": "^4.8.35 || ^5.6.3 || ^9.5",
"psr/cache": "^1.0", "psr/cache": "^1.0",
"psr/http-message": "^1.0",
"psr/simple-cache": "^1.0", "psr/simple-cache": "^1.0",
"sebastian/comparator": "^1.2.3 || ^4.0", "sebastian/comparator": "^1.2.3 || ^4.0",
"yoast/phpunit-polyfills": "^1.0" "yoast/phpunit-polyfills": "^1.0"
@ -146,9 +151,9 @@
"support": { "support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.262.0" "source": "https://github.com/aws/aws-sdk-php/tree/3.269.0"
}, },
"time": "2023-03-23T18:21:18+00:00" "time": "2023-04-26T18:21:04+00:00"
}, },
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@ -361,26 +366,25 @@
}, },
{ {
"name": "brick/math", "name": "brick/math",
"version": "0.10.2", "version": "0.11.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/brick/math.git", "url": "https://github.com/brick/math.git",
"reference": "459f2781e1a08d52ee56b0b1444086e038561e3f" "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f", "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
"reference": "459f2781e1a08d52ee56b0b1444086e038561e3f", "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "php": "^8.0"
"php": "^7.4 || ^8.0"
}, },
"require-dev": { "require-dev": {
"php-coveralls/php-coveralls": "^2.2", "php-coveralls/php-coveralls": "^2.2",
"phpunit/phpunit": "^9.0", "phpunit/phpunit": "^9.0",
"vimeo/psalm": "4.25.0" "vimeo/psalm": "5.0.0"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -405,7 +409,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/brick/math/issues", "issues": "https://github.com/brick/math/issues",
"source": "https://github.com/brick/math/tree/0.10.2" "source": "https://github.com/brick/math/tree/0.11.0"
}, },
"funding": [ "funding": [
{ {
@ -413,7 +417,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-08-10T22:54:19+00:00" "time": "2023-01-15T23:15:59+00:00"
}, },
{ {
"name": "dasprid/enum", "name": "dasprid/enum",
@ -635,16 +639,16 @@
}, },
{ {
"name": "doctrine/dbal", "name": "doctrine/dbal",
"version": "3.6.1", "version": "3.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/dbal.git", "url": "https://github.com/doctrine/dbal.git",
"reference": "57815c7bbcda3cd18871d253c1dd8cbe56f8526e" "reference": "b4bd1cfbd2b916951696d82e57d054394d84864c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/57815c7bbcda3cd18871d253c1dd8cbe56f8526e", "url": "https://api.github.com/repos/doctrine/dbal/zipball/b4bd1cfbd2b916951696d82e57d054394d84864c",
"reference": "57815c7bbcda3cd18871d253c1dd8cbe56f8526e", "reference": "b4bd1cfbd2b916951696d82e57d054394d84864c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -660,9 +664,9 @@
"doctrine/coding-standard": "11.1.0", "doctrine/coding-standard": "11.1.0",
"fig/log-test": "^1", "fig/log-test": "^1",
"jetbrains/phpstorm-stubs": "2022.3", "jetbrains/phpstorm-stubs": "2022.3",
"phpstan/phpstan": "1.10.3", "phpstan/phpstan": "1.10.9",
"phpstan/phpstan-strict-rules": "^1.5", "phpstan/phpstan-strict-rules": "^1.5",
"phpunit/phpunit": "9.6.4", "phpunit/phpunit": "9.6.6",
"psalm/plugin-phpunit": "0.18.4", "psalm/plugin-phpunit": "0.18.4",
"squizlabs/php_codesniffer": "3.7.2", "squizlabs/php_codesniffer": "3.7.2",
"symfony/cache": "^5.4|^6.0", "symfony/cache": "^5.4|^6.0",
@ -727,7 +731,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/dbal/issues", "issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.6.1" "source": "https://github.com/doctrine/dbal/tree/3.6.2"
}, },
"funding": [ "funding": [
{ {
@ -743,7 +747,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-03-02T19:26:24+00:00" "time": "2023-04-14T07:25:38+00:00"
}, },
{ {
"name": "doctrine/deprecations", "name": "doctrine/deprecations",
@ -1374,22 +1378,22 @@
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "7.5.0", "version": "7.5.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b964ca597e86b752cd994f27293e9fa6b6a95ed9",
"reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"guzzlehttp/promises": "^1.5", "guzzlehttp/promises": "^1.5",
"guzzlehttp/psr7": "^1.9 || ^2.4", "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
"php": "^7.2.5 || ^8.0", "php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0", "psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0" "symfony/deprecation-contracts": "^2.2 || ^3.0"
@ -1482,7 +1486,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/guzzle/issues", "issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.5.0" "source": "https://github.com/guzzle/guzzle/tree/7.5.1"
}, },
"funding": [ "funding": [
{ {
@ -1498,7 +1502,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-28T15:39:27+00:00" "time": "2023-04-17T16:30:08+00:00"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
@ -1586,22 +1590,22 @@
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "2.4.4", "version": "2.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf" "reference": "b635f279edd83fc275f822a1188157ffea568ff6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf", "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6",
"reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf", "reference": "b635f279edd83fc275f822a1188157ffea568ff6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.2.5 || ^8.0", "php": "^7.2.5 || ^8.0",
"psr/http-factory": "^1.0", "psr/http-factory": "^1.0",
"psr/http-message": "^1.0", "psr/http-message": "^1.1 || ^2.0",
"ralouphie/getallheaders": "^3.0" "ralouphie/getallheaders": "^3.0"
}, },
"provide": { "provide": {
@ -1621,9 +1625,6 @@
"bamarni-bin": { "bamarni-bin": {
"bin-links": true, "bin-links": true,
"forward-command": false "forward-command": false
},
"branch-alias": {
"dev-master": "2.4-dev"
} }
}, },
"autoload": { "autoload": {
@ -1685,7 +1686,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.4.4" "source": "https://github.com/guzzle/psr7/tree/2.5.0"
}, },
"funding": [ "funding": [
{ {
@ -1701,7 +1702,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-03-09T13:19:02+00:00" "time": "2023-04-17T16:11:26+00:00"
}, },
{ {
"name": "guzzlehttp/uri-template", "name": "guzzlehttp/uri-template",
@ -1947,16 +1948,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v9.52.4", "version": "v9.52.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "9239128cfb4d22afefb64060dfecf53e82987267" "reference": "675ea868fe36b18c8303e954aac540e6b1caa677"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/9239128cfb4d22afefb64060dfecf53e82987267", "url": "https://api.github.com/repos/laravel/framework/zipball/675ea868fe36b18c8303e954aac540e6b1caa677",
"reference": "9239128cfb4d22afefb64060dfecf53e82987267", "reference": "675ea868fe36b18c8303e954aac540e6b1caa677",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2053,7 +2054,7 @@
"league/flysystem-read-only": "^3.3", "league/flysystem-read-only": "^3.3",
"league/flysystem-sftp-v3": "^3.0", "league/flysystem-sftp-v3": "^3.0",
"mockery/mockery": "^1.5.1", "mockery/mockery": "^1.5.1",
"orchestra/testbench-core": "^7.16", "orchestra/testbench-core": "^7.24",
"pda/pheanstalk": "^4.0", "pda/pheanstalk": "^4.0",
"phpstan/phpdoc-parser": "^1.15", "phpstan/phpdoc-parser": "^1.15",
"phpstan/phpstan": "^1.4.7", "phpstan/phpstan": "^1.4.7",
@ -2141,7 +2142,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2023-02-22T14:38:06+00:00" "time": "2023-04-25T13:44:05+00:00"
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
@ -2342,16 +2343,16 @@
}, },
{ {
"name": "league/commonmark", "name": "league/commonmark",
"version": "2.3.9", "version": "2.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/commonmark.git", "url": "https://github.com/thephpleague/commonmark.git",
"reference": "c1e114f74e518daca2729ea8c4bf1167038fa4b5" "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c1e114f74e518daca2729ea8c4bf1167038fa4b5", "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d44a24690f16b8c1808bf13b1bd54ae4c63ea048",
"reference": "c1e114f74e518daca2729ea8c4bf1167038fa4b5", "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2387,7 +2388,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "2.4-dev" "dev-main": "2.5-dev"
} }
}, },
"autoload": { "autoload": {
@ -2444,7 +2445,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-02-15T14:07:24+00:00" "time": "2023-03-24T15:16:10+00:00"
}, },
{ {
"name": "league/config", "name": "league/config",
@ -2530,16 +2531,16 @@
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
"version": "3.12.3", "version": "3.14.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem.git", "url": "https://github.com/thephpleague/flysystem.git",
"reference": "81e87e74dd5213795c7846d65089712d2dda90ce" "reference": "e2a279d7f47d9098e479e8b21f7fb8b8de230158"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/81e87e74dd5213795c7846d65089712d2dda90ce", "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e2a279d7f47d9098e479e8b21f7fb8b8de230158",
"reference": "81e87e74dd5213795c7846d65089712d2dda90ce", "reference": "e2a279d7f47d9098e479e8b21f7fb8b8de230158",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2601,7 +2602,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/flysystem/issues", "issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.12.3" "source": "https://github.com/thephpleague/flysystem/tree/3.14.0"
}, },
"funding": [ "funding": [
{ {
@ -2611,26 +2612,22 @@
{ {
"url": "https://github.com/frankdejonge", "url": "https://github.com/frankdejonge",
"type": "github" "type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/league/flysystem",
"type": "tidelift"
} }
], ],
"time": "2023-02-18T15:32:41+00:00" "time": "2023-04-11T18:11:47+00:00"
}, },
{ {
"name": "league/flysystem-aws-s3-v3", "name": "league/flysystem-aws-s3-v3",
"version": "3.12.2", "version": "3.13.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
"reference": "645e14e4a80bd2da8b01e57388e7296a695a80c2" "reference": "8e04cbb403d4dfd5b73a2f8685f1df395bd177eb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/645e14e4a80bd2da8b01e57388e7296a695a80c2", "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/8e04cbb403d4dfd5b73a2f8685f1df395bd177eb",
"reference": "645e14e4a80bd2da8b01e57388e7296a695a80c2", "reference": "8e04cbb403d4dfd5b73a2f8685f1df395bd177eb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2671,7 +2668,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues", "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.12.2" "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.13.0"
}, },
"funding": [ "funding": [
{ {
@ -2681,13 +2678,9 @@
{ {
"url": "https://github.com/frankdejonge", "url": "https://github.com/frankdejonge",
"type": "github" "type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/league/flysystem",
"type": "tidelift"
} }
], ],
"time": "2023-01-17T14:15:08+00:00" "time": "2023-03-16T14:29:01+00:00"
}, },
{ {
"name": "league/html-to-markdown", "name": "league/html-to-markdown",
@ -2912,16 +2905,16 @@
}, },
{ {
"name": "league/oauth2-client", "name": "league/oauth2-client",
"version": "2.6.1", "version": "2.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/oauth2-client.git", "url": "https://github.com/thephpleague/oauth2-client.git",
"reference": "2334c249907190c132364f5dae0287ab8666aa19" "reference": "160d6274b03562ebeb55ed18399281d8118b76c8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/2334c249907190c132364f5dae0287ab8666aa19", "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/160d6274b03562ebeb55ed18399281d8118b76c8",
"reference": "2334c249907190c132364f5dae0287ab8666aa19", "reference": "160d6274b03562ebeb55ed18399281d8118b76c8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2976,32 +2969,30 @@
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/oauth2-client/issues", "issues": "https://github.com/thephpleague/oauth2-client/issues",
"source": "https://github.com/thephpleague/oauth2-client/tree/2.6.1" "source": "https://github.com/thephpleague/oauth2-client/tree/2.7.0"
}, },
"time": "2021-12-22T16:42:49+00:00" "time": "2023-04-16T18:19:15+00:00"
}, },
{ {
"name": "masterminds/html5", "name": "masterminds/html5",
"version": "2.7.6", "version": "2.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Masterminds/html5-php.git", "url": "https://github.com/Masterminds/html5-php.git",
"reference": "897eb517a343a2281f11bc5556d6548db7d93947" "reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3",
"reference": "897eb517a343a2281f11bc5556d6548db7d93947", "reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-ctype": "*",
"ext-dom": "*", "ext-dom": "*",
"ext-libxml": "*",
"php": ">=5.3.0" "php": ">=5.3.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -3045,9 +3036,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/Masterminds/html5-php/issues", "issues": "https://github.com/Masterminds/html5-php/issues",
"source": "https://github.com/Masterminds/html5-php/tree/2.7.6" "source": "https://github.com/Masterminds/html5-php/tree/2.8.0"
}, },
"time": "2022-08-18T16:18:26+00:00" "time": "2023-04-26T07:27:39+00:00"
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
@ -4317,21 +4308,21 @@
}, },
{ {
"name": "psr/http-client", "name": "psr/http-client",
"version": "1.0.1", "version": "1.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-client.git", "url": "https://github.com/php-fig/http-client.git",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0 || ^8.0", "php": "^7.0 || ^8.0",
"psr/http-message": "^1.0" "psr/http-message": "^1.0 || ^2.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -4351,7 +4342,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interface for HTTP clients", "description": "Common interface for HTTP clients",
@ -4363,27 +4354,27 @@
"psr-18" "psr-18"
], ],
"support": { "support": {
"source": "https://github.com/php-fig/http-client/tree/master" "source": "https://github.com/php-fig/http-client/tree/1.0.2"
}, },
"time": "2020-06-29T06:28:15+00:00" "time": "2023-04-10T20:12:12+00:00"
}, },
{ {
"name": "psr/http-factory", "name": "psr/http-factory",
"version": "1.0.1", "version": "1.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-factory.git", "url": "https://github.com/php-fig/http-factory.git",
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" "reference": "e616d01114759c4c489f93b099585439f795fe35"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", "reference": "e616d01114759c4c489f93b099585439f795fe35",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.0.0", "php": ">=7.0.0",
"psr/http-message": "^1.0" "psr/http-message": "^1.0 || ^2.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -4403,7 +4394,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interfaces for PSR-7 HTTP message factories", "description": "Common interfaces for PSR-7 HTTP message factories",
@ -4418,31 +4409,31 @@
"response" "response"
], ],
"support": { "support": {
"source": "https://github.com/php-fig/http-factory/tree/master" "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
}, },
"time": "2019-04-30T12:38:16+00:00" "time": "2023-04-10T20:10:41+00:00"
}, },
{ {
"name": "psr/http-message", "name": "psr/http-message",
"version": "1.0.1", "version": "2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-message.git", "url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0" "php": "^7.2 || ^8.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0.x-dev" "dev-master": "2.0.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -4457,7 +4448,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interface for HTTP messages", "description": "Common interface for HTTP messages",
@ -4471,9 +4462,9 @@
"response" "response"
], ],
"support": { "support": {
"source": "https://github.com/php-fig/http-message/tree/master" "source": "https://github.com/php-fig/http-message/tree/2.0"
}, },
"time": "2016-08-06T14:39:51+00:00" "time": "2023-04-04T09:54:51+00:00"
}, },
{ {
"name": "psr/log", "name": "psr/log",
@ -4578,16 +4569,16 @@
}, },
{ {
"name": "psy/psysh", "name": "psy/psysh",
"version": "v0.11.13", "version": "v0.11.16",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/bobthecow/psysh.git", "url": "https://github.com/bobthecow/psysh.git",
"reference": "722317c9f5627e588788e340f29b923e58f92f54" "reference": "151b145906804eea8e5d71fea23bfb470c904bfb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/722317c9f5627e588788e340f29b923e58f92f54", "url": "https://api.github.com/repos/bobthecow/psysh/zipball/151b145906804eea8e5d71fea23bfb470c904bfb",
"reference": "722317c9f5627e588788e340f29b923e58f92f54", "reference": "151b145906804eea8e5d71fea23bfb470c904bfb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4648,9 +4639,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/bobthecow/psysh/issues", "issues": "https://github.com/bobthecow/psysh/issues",
"source": "https://github.com/bobthecow/psysh/tree/v0.11.13" "source": "https://github.com/bobthecow/psysh/tree/v0.11.16"
}, },
"time": "2023-03-21T14:22:44+00:00" "time": "2023-04-26T12:53:57+00:00"
}, },
{ {
"name": "ralouphie/getallheaders", "name": "ralouphie/getallheaders",
@ -4788,20 +4779,20 @@
}, },
{ {
"name": "ramsey/uuid", "name": "ramsey/uuid",
"version": "4.7.3", "version": "4.7.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ramsey/uuid.git", "url": "https://github.com/ramsey/uuid.git",
"reference": "433b2014e3979047db08a17a205f410ba3869cf2" "reference": "60a4c63ab724854332900504274f6150ff26d286"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/433b2014e3979047db08a17a205f410ba3869cf2", "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286",
"reference": "433b2014e3979047db08a17a205f410ba3869cf2", "reference": "60a4c63ab724854332900504274f6150ff26d286",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"brick/math": "^0.8.8 || ^0.9 || ^0.10", "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
"ext-json": "*", "ext-json": "*",
"php": "^8.0", "php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0" "ramsey/collection": "^1.2 || ^2.0"
@ -4864,7 +4855,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/ramsey/uuid/issues", "issues": "https://github.com/ramsey/uuid/issues",
"source": "https://github.com/ramsey/uuid/tree/4.7.3" "source": "https://github.com/ramsey/uuid/tree/4.7.4"
}, },
"funding": [ "funding": [
{ {
@ -4876,7 +4867,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-12T18:13:24+00:00" "time": "2023-04-15T23:01:58+00:00"
}, },
{ {
"name": "robrichards/xmlseclibs", "name": "robrichards/xmlseclibs",
@ -8034,16 +8025,16 @@
}, },
{ {
"name": "filp/whoops", "name": "filp/whoops",
"version": "2.15.1", "version": "2.15.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filp/whoops.git", "url": "https://github.com/filp/whoops.git",
"reference": "e864ac957acd66e1565f25efda61e37791a5db0b" "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/e864ac957acd66e1565f25efda61e37791a5db0b", "url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
"reference": "e864ac957acd66e1565f25efda61e37791a5db0b", "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8093,7 +8084,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/filp/whoops/issues", "issues": "https://github.com/filp/whoops/issues",
"source": "https://github.com/filp/whoops/tree/2.15.1" "source": "https://github.com/filp/whoops/tree/2.15.2"
}, },
"funding": [ "funding": [
{ {
@ -8101,7 +8092,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2023-03-06T18:09:13+00:00" "time": "2023-04-12T12:00:00+00:00"
}, },
{ {
"name": "hamcrest/hamcrest-php", "name": "hamcrest/hamcrest-php",
@ -8443,16 +8434,16 @@
}, },
{ {
"name": "nunomaduro/larastan", "name": "nunomaduro/larastan",
"version": "2.5.1", "version": "v2.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nunomaduro/larastan.git", "url": "https://github.com/nunomaduro/larastan.git",
"reference": "072e2c9566ae000bf66c92384fc933b81885244b" "reference": "ccac5b25949576807862cf32ba1fce1769c06c42"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nunomaduro/larastan/zipball/072e2c9566ae000bf66c92384fc933b81885244b", "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/ccac5b25949576807862cf32ba1fce1769c06c42",
"reference": "072e2c9566ae000bf66c92384fc933b81885244b", "reference": "ccac5b25949576807862cf32ba1fce1769c06c42",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8466,7 +8457,7 @@
"illuminate/support": "^9.47.0 || ^10.0.0", "illuminate/support": "^9.47.0 || ^10.0.0",
"php": "^8.0.2", "php": "^8.0.2",
"phpmyadmin/sql-parser": "^5.6.0", "phpmyadmin/sql-parser": "^5.6.0",
"phpstan/phpstan": "~1.10.3" "phpstan/phpstan": "~1.10.6"
}, },
"require-dev": { "require-dev": {
"nikic/php-parser": "^4.15.2", "nikic/php-parser": "^4.15.2",
@ -8515,7 +8506,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/nunomaduro/larastan/issues", "issues": "https://github.com/nunomaduro/larastan/issues",
"source": "https://github.com/nunomaduro/larastan/tree/2.5.1" "source": "https://github.com/nunomaduro/larastan/tree/v2.6.0"
}, },
"funding": [ "funding": [
{ {
@ -8535,7 +8526,7 @@
"type": "patreon" "type": "patreon"
} }
], ],
"time": "2023-03-04T23:46:40+00:00" "time": "2023-04-20T12:40:01+00:00"
}, },
{ {
"name": "phar-io/manifest", "name": "phar-io/manifest",
@ -8737,16 +8728,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.10.8", "version": "1.10.14",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9" "reference": "d232901b09e67538e5c86a724be841bea5768a7c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/0166aef76e066f0dd2adc2799bdadfa1635711e9", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d232901b09e67538e5c86a724be841bea5768a7c",
"reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9", "reference": "d232901b09e67538e5c86a724be841bea5768a7c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8795,7 +8786,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-03-24T10:28:16+00:00" "time": "2023-04-19T13:47:27+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
@ -9117,16 +9108,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.6.5", "version": "9.6.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5" "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/86e761949019ae83f49240b2f2123fb5ab3b2fc5", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
"reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5", "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9199,7 +9190,8 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.5" "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.7"
}, },
"funding": [ "funding": [
{ {
@ -9215,7 +9207,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-03-09T06:34:10+00:00" "time": "2023-04-14T08:58:40+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",

View File

@ -0,0 +1,26 @@
{
"owner_id": 1,
"role_permissions": [
{
"role_id": 2,
"view": true,
"create": true,
"update": true,
"delete": false
},
{
"role_id": 3,
"view": false,
"create": false,
"update": false,
"delete": false
}
],
"fallback_permissions": {
"inheriting": false,
"view": true,
"create": true,
"update": false,
"delete": false
}
}

View File

@ -0,0 +1,3 @@
{
"name": "My updated image name"
}

View File

@ -7,7 +7,7 @@
"slug": "content-creation", "slug": "content-creation",
"description": "How to create documentation on whatever subject you need to write about.", "description": "How to create documentation on whatever subject you need to write about.",
"priority": 3, "priority": 3,
"created_at": "2019-05-05:", "created_at": "2019-05-05T21:49:56.000000Z",
"updated_at": "2019-09-28T11:24:23.000000Z", "updated_at": "2019-09-28T11:24:23.000000Z",
"created_by": 1, "created_by": 1,
"updated_by": 1, "updated_by": 1,

View File

@ -0,0 +1,38 @@
{
"owner": {
"id": 1,
"name": "Admin",
"slug": "admin"
},
"role_permissions": [
{
"role_id": 2,
"view": true,
"create": false,
"update": true,
"delete": false,
"role": {
"id": 2,
"display_name": "Editor"
}
},
{
"role_id": 10,
"view": true,
"create": true,
"update": false,
"delete": false,
"role": {
"id": 10,
"display_name": "Wizards of the west"
}
}
],
"fallback_permissions": {
"inheriting": false,
"view": true,
"create": false,
"update": false,
"delete": false
}
}

View File

@ -0,0 +1,38 @@
{
"owner": {
"id": 1,
"name": "Admin",
"slug": "admin"
},
"role_permissions": [
{
"role_id": 2,
"view": true,
"create": true,
"update": true,
"delete": false,
"role": {
"id": 2,
"display_name": "Editor"
}
},
{
"role_id": 3,
"view": false,
"create": false,
"update": false,
"delete": false,
"role": {
"id": 3,
"display_name": "Viewer"
}
}
],
"fallback_permissions": {
"inheriting": false,
"view": true,
"create": true,
"update": false,
"delete": false
}
}

View File

@ -0,0 +1,28 @@
{
"name": "cute-cat-image.png",
"path": "\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
"type": "gallery",
"uploaded_to": 1,
"created_by": {
"id": 1,
"name": "Admin",
"slug": "admin"
},
"updated_by": {
"id": 1,
"name": "Admin",
"slug": "admin"
},
"updated_at": "2023-03-15 08:17:37",
"created_at": "2023-03-15 08:17:37",
"id": 618,
"thumbs": {
"gallery": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/thumbs-150-150\/cute-cat-image.png",
"display": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png"
},
"content": {
"html": "<a href=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png\" target=\"_blank\"><img src=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png\" alt=\"cute-cat-image.png\"><\/a>",
"markdown": "![cute-cat-image.png](https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png)"
}
}

View File

@ -0,0 +1,41 @@
{
"data": [
{
"id": 1,
"name": "My cat scribbles",
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-02\/scribbles.jpg",
"path": "\/uploads\/images\/gallery\/2023-02\/scribbles.jpg",
"type": "gallery",
"uploaded_to": 1,
"created_by": 1,
"updated_by": 1,
"created_at": "2023-02-12T16:34:57.000000Z",
"updated_at": "2023-02-12T16:34:57.000000Z"
},
{
"id": 2,
"name": "Drawing-1.png",
"url": "https:\/\/bookstack.example.com\/uploads\/images\/drawio\/2023-02\/drawing-1.png",
"path": "\/uploads\/images\/drawio\/2023-02\/drawing-1.png",
"type": "drawio",
"uploaded_to": 2,
"created_by": 2,
"updated_by": 2,
"created_at": "2023-02-12T16:39:19.000000Z",
"updated_at": "2023-02-12T16:39:19.000000Z"
},
{
"id": 8,
"name": "beans.jpg",
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-02\/beans.jpg",
"path": "\/uploads\/images\/gallery\/2023-02\/beans.jpg",
"type": "gallery",
"uploaded_to": 6,
"created_by": 1,
"updated_by": 1,
"created_at": "2023-02-15T19:37:44.000000Z",
"updated_at": "2023-02-15T19:37:44.000000Z"
}
],
"total": 3
}

View File

@ -0,0 +1,28 @@
{
"id": 618,
"name": "cute-cat-image.png",
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
"created_at": "2023-03-15 08:17:37",
"updated_at": "2023-03-15 08:17:37",
"created_by": {
"id": 1,
"name": "Admin",
"slug": "admin"
},
"updated_by": {
"id": 1,
"name": "Admin",
"slug": "admin"
},
"path": "\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
"type": "gallery",
"uploaded_to": 1,
"thumbs": {
"gallery": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/thumbs-150-150\/cute-cat-image.png",
"display": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png"
},
"content": {
"html": "<a href=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png\" target=\"_blank\"><img src=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png\" alt=\"cute-cat-image.png\"><\/a>",
"markdown": "![cute-cat-image.png](https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png)"
}
}

View File

@ -0,0 +1,28 @@
{
"id": 618,
"name": "My updated image name",
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
"created_at": "2023-03-15 08:17:37",
"updated_at": "2023-03-15 08:24:50",
"created_by": {
"id": 1,
"name": "Admin",
"slug": "admin"
},
"updated_by": {
"id": 1,
"name": "Admin",
"slug": "admin"
},
"path": "\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
"type": "gallery",
"uploaded_to": 1,
"thumbs": {
"gallery": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/thumbs-150-150\/cute-cat-image.png",
"display": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png"
},
"content": {
"html": "<a href=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png\" target=\"_blank\"><img src=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png\" alt=\"My updated image name\"><\/a>",
"markdown": "![My updated image name](https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png)"
}
}

View File

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

View File

@ -33,6 +33,10 @@ If the codebase needs to be tested with deprecations, this can be done via uncom
## Code Standards ## Code Standards
We use tools to manage code standards and formatting within the project. If submitting a PR, formatting as per our project standards would help for clarity but don't worry too much about using/understanding these tools as we can always address issues at a later stage when they're picked up by our automated tools.
### PHP
PHP code standards are managed by [using PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer). PHP code standards are managed by [using PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer).
Static analysis is in place using [PHPStan](https://phpstan.org/) & [Larastan](https://github.com/nunomaduro/larastan). Static analysis is in place using [PHPStan](https://phpstan.org/) & [Larastan](https://github.com/nunomaduro/larastan).
The below commands can be used to utilise these tools: The below commands can be used to utilise these tools:
@ -51,7 +55,19 @@ composer format
composer check-static composer check-static
``` ```
If submitting a PR, formatting as per our project standards would help for clarity but don't worry too much about using/understanding these tools as we can always address issues at a later stage when they're picked up by our automated tools. ### JavaScript
JavaScript code standards use managed using [ESLint](https://eslint.org/).
The ESLint rule configuration is managed within the `package.json` file.
The below commands can be used to lint and format:
```bash
# Run code linting using ESLint
npm run lint
# Fix code where possible using ESLint
npm run fix
```
## Development using Docker ## Development using Docker

View File

@ -115,6 +115,7 @@ There are various global helper libraries in BookStack which can be accessed via
```js ```js
// HTTP service // HTTP service
// Relative URLs will be resolved against the instance BASE_URL
window.$http.get(url, params); window.$http.get(url, params);
window.$http.post(url, data); window.$http.post(url, data);
window.$http.put(url, data); window.$http.put(url, data);
@ -153,4 +154,10 @@ window.$components.get(name);
// Get the first active component of the given name that's been // Get the first active component of the given name that's been
// created on the given element. // created on the given element.
window.$components.firstOnElement(element, name); window.$components.firstOnElement(element, name);
``` ```
## Public Events
There are a range of available events that are emitted as part of a public & supported API for accessing or extending JavaScript libraries & components used in the system.
Details on these events can be found in the [JavaScript Public Events file](javascript-public-events.md).

View File

@ -0,0 +1,255 @@
# JavaScript Public Events
There are a range of available events emitted as part of a public & [supported](#support) API for accessing or extending JavaScript libraries and components used in the system.
These are emitted via standard DOM events so can be consumed using standard DOM APIs like so:
```javascript
window.addEventListener('event-name', event => {
const eventData = event.detail;
});
```
Such events are typically emitted from a DOM element relevant to event, which then bubbles up.
For most use-cases you can probably just listen on the `window` as shown above.
## Support
This event system, and the events emitted, are considered semi-supported.
Breaking changes of the event API, event names, or event properties, are possible but will be documented in update notes.
The detail provided within the events, and the libraries made accessible, are not considered supported nor stable, and changes to these won't be clearly documented changelogs.
## Event Naming Scheme
Events are typically named in the following format:
```text
<context>::<action/lifecycle>
# Examples:
editor-tinymce::setup
library-cm6::configure-theme
```
If the event is generic in use but specific to a library, the `<context>` will start with `library-` followed by the library name. Otherwise `<context>` may reflect the UI context/component.
The `<action/lifecycle>` reflects the lifecycle stage of the context, or a specific action to perform if the event is specific to a certain use-case.
## Event Listing
### `editor-markdown-cm6::pre-init`
This event is called before the markdown input editor CodeMirror instance is created or loaded.
#### Event Data
- `editorViewConfig` - An [EditorViewConfig](https://codemirror.net/docs/ref/#view.EditorViewConfig) object that will eventially be passed when creating the CodeMirror EditorView instance.
##### Example
```javascript
// Always load the editor with specific pre-defined content if empty
window.addEventListener('editor-markdown-cm6::pre-init', event => {
const config = event.detail.editorViewConfig;
config.doc = config.doc || "Start this page with a nice story";
});
```
### `editor-markdown::setup`
This event is called when the markdown editor loads, post configuration but before the editor is ready to use.
#### Event Data
- `markdownIt` - A references to the [MarkdownIt](https://markdown-it.github.io/markdown-it/#MarkdownIt) instance used to render markdown to HTML (Just for the preview).
- `displayEl` - The IFrame Element that wraps the HTML preview display.
- `cmEditorView` - The CodeMirror [EditorView](https://codemirror.net/docs/ref/#view.EditorView) instance used for the markdown input editor.
##### Example
```javascript
// Set all text in the display to be red by default.
window.addEventListener('editor-markdown::setup', event => {
const display = event.detail.displayEl;
display.contentDocument.body.style.color = 'red';
});
```
### `editor-drawio::configure`
This event is called as the embedded diagrams.net drawing editor loads, to allow configuration of the diagrams.net interface.
See [this diagrams.net page](https://www.diagrams.net/doc/faq/configure-diagram-editor) for details on the available options for the configure event.
If using a custom diagrams.net instance, via the `DRAWIO` option, you will need to ensure your DRAWIO option URL has the `configure=1` query parameter.
#### Event Data
- `config` - The configuration object that will be passed to diagrams.net.
- This will likely be empty by default, but modify this object in-place as needed with your desired options.
##### Example
```javascript
// Set only the "general" and "android" libraries to show by default
window.addEventListener('editor-drawio::configure', event => {
const config = event.detail.config;
config.enabledLibraries = ["general", "android"];
});
```
### `editor-tinymce::pre-init`
This event is called before the TinyMCE editor, used as the BookStack WYSIWYG page editor, is initialised.
#### Event Data
- `config` - Object containing the configuration that's going to be passed to [tinymce.init](https://www.tiny.cloud/docs/api/tinymce/root_tinymce/#init).
##### Example
```javascript
// Removed "bold" from the editor toolbar
window.addEventListener('editor-tinymce::pre-init', event => {
const tinyConfig = event.detail.config;
tinyConfig.toolbar = tinyConfig.toolbar.replace('bold ', '');
});
```
### `editor-tinymce::setup`
This event is called during the `setup` lifecycle stage of the TinyMCE editor used as the BookStack WYSIWYG editor. This is after configuration, but before the editor is fully loaded and ready to use.
##### Event Data
- `editor` - The [tinymce.Editor](https://www.tiny.cloud/docs/api/tinymce/tinymce.editor/) instance used for the WYSIWYG editor.
##### Example
```javascript
// Replaces the editor content with redacted message 3 seconds after load.
window.addEventListener('editor-tinymce::setup', event => {
const editor = event.detail.editor;
setTimeout(() => {
editor.setContent('REDACTED!');
}, 3000);
});
```
### `library-cm6::configure-theme`
This event is called whenever a CodeMirror instance is loaded, as a method to configure the theme used by CodeMirror. This applies to all CodeMirror instances including in-page code blocks, editors using in BookStack settings, and the Page markdown editor.
#### Event Data
- `darkModeActive` - A boolean to indicate if the current view/page is being loaded with dark mode active.
- `registerViewTheme(builder)` - A method that can be called to register a new view (CodeMirror UI) theme.
- `builder` - A function that will return an object that will be passed into the CodeMirror [EditorView.theme()](https://codemirror.net/docs/ref/#view.EditorView^theme) function as a StyleSpec.
- `registerHighlightStyle(builder)` - A method that can be called to register a new HighlightStyle (code highlighting) theme.
- `builder` - A function, that receives a reference to [Tag.tags](https://lezer.codemirror.net/docs/ref/#highlight.tags) and returns an array of [TagStyle](https://codemirror.net/docs/ref/#language.TagStyle) objects.
##### Example
The below shows registering a custom "Solarized dark" editor and syntax theme:
<details>
<summary>Show Example</summary>
```javascript
// Theme data taken from:
// https://github.com/craftzdog/cm6-themes/blob/main/packages/solarized-dark/src/index.ts
// (MIT License) - Copyright (C) 2022 by Takuya Matsuyama and others
const base00 = '#002b36',
base01 = '#073642',
base02 = '#586e75',
base03 = '#657b83',
base04 = '#839496',
base05 = '#93a1a1',
base06 = '#eee8d5',
base07 = '#fdf6e3',
base_red = '#dc322f',
base_orange = '#cb4b16',
base_yellow = '#b58900',
base_green = '#859900',
base_cyan = '#2aa198',
base_blue = '#268bd2',
base_violet = '#6c71c4',
base_magenta = '#d33682'
const invalid = '#d30102',
stone = base04,
darkBackground = '#00252f',
highlightBackground = '#173541',
background = base00,
tooltipBackground = base01,
selection = '#173541',
cursor = base04
function viewThemeBuilder() {
return {
'&':{color:base05,backgroundColor:background},
'.cm-content':{caretColor:cursor},
'.cm-cursor, .cm-dropCursor':{borderLeftColor:cursor},
'&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection':{backgroundColor:selection},
'.cm-panels':{backgroundColor:darkBackground,color:base03},
'.cm-panels.cm-panels-top':{borderBottom:'2px solid black'},
'.cm-panels.cm-panels-bottom':{borderTop:'2px solid black'},
'.cm-searchMatch':{backgroundColor:'#72a1ff59',outline:'1px solid #457dff'},
'.cm-searchMatch.cm-searchMatch-selected':{backgroundColor:'#6199ff2f'},
'.cm-activeLine':{backgroundColor:highlightBackground},
'.cm-selectionMatch':{backgroundColor:'#aafe661a'},
'&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket':{outline:`1px solid ${base06}`},
'.cm-gutters':{backgroundColor:darkBackground,color:stone,border:'none'},
'.cm-activeLineGutter':{backgroundColor:highlightBackground},
'.cm-foldPlaceholder':{backgroundColor:'transparent',border:'none',color:'#ddd'},
'.cm-tooltip':{border:'none',backgroundColor:tooltipBackground},
'.cm-tooltip .cm-tooltip-arrow:before':{borderTopColor:'transparent',borderBottomColor:'transparent'},
'.cm-tooltip .cm-tooltip-arrow:after':{borderTopColor:tooltipBackground,borderBottomColor:tooltipBackground},
'.cm-tooltip-autocomplete':{
'& > ul > li[aria-selected]':{backgroundColor:highlightBackground,color:base03}
}
};
}
function highlightStyleBuilder(t) {
return [{tag:t.keyword,color:base_green},
{tag:[t.name,t.deleted,t.character,t.propertyName,t.macroName],color:base_cyan},
{tag:[t.variableName],color:base05},
{tag:[t.function(t.variableName)],color:base_blue},
{tag:[t.labelName],color:base_magenta},
{tag:[t.color,t.constant(t.name),t.standard(t.name)],color:base_yellow},
{tag:[t.definition(t.name),t.separator],color:base_cyan},
{tag:[t.brace],color:base_magenta},
{tag:[t.annotation],color:invalid},
{tag:[t.number,t.changed,t.annotation,t.modifier,t.self,t.namespace],color:base_magenta},
{tag:[t.typeName,t.className],color:base_orange},
{tag:[t.operator,t.operatorKeyword],color:base_violet},
{tag:[t.tagName],color:base_blue},
{tag:[t.squareBracket],color:base_red},
{tag:[t.angleBracket],color:base02},
{tag:[t.attributeName],color:base05},
{tag:[t.regexp],color:invalid},
{tag:[t.quote],color:base_green},
{tag:[t.string],color:base_yellow},
{tag:t.link,color:base_cyan,textDecoration:'underline',textUnderlinePosition:'under'},
{tag:[t.url,t.escape,t.special(t.string)],color:base_yellow},
{tag:[t.meta],color:base_red},
{tag:[t.comment],color:base02,fontStyle:'italic'},
{tag:t.strong,fontWeight:'bold',color:base06},
{tag:t.emphasis,fontStyle:'italic',color:base_green},
{tag:t.strikethrough,textDecoration:'line-through'},
{tag:t.heading,fontWeight:'bold',color:base_yellow},
{tag:t.heading1,fontWeight:'bold',color:base07},
{tag:[t.heading2,t.heading3,t.heading4],fontWeight:'bold',color:base06},
{tag:[t.heading5,t.heading6],color:base06},
{tag:[t.atom,t.bool,t.special(t.variableName)],color:base_magenta},
{tag:[t.processingInstruction,t.inserted,t.contentSeparator],color:base_red},
{tag:[t.contentSeparator],color:base_yellow},
{tag:t.invalid,color:base02,borderBottom:`1px dotted ${base_red}`}];
}
window.addEventListener('library-cm6::configure-theme', event => {
const detail = event.detail;
detail.registerViewTheme(viewThemeBuilder);
detail.registerHighlightStyle(highlightStyleBuilder);
});
```
</details>

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'تحديد صورة', 'image_select' => 'تحديد صورة',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'الكل', 'image_all' => 'الكل',
'image_all_title' => 'عرض جميع الصور', 'image_all_title' => 'عرض جميع الصور',
'image_book_title' => 'عرض الصور المرفوعة لهذا الكتاب', 'image_book_title' => 'عرض الصور المرفوعة لهذا الكتاب',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'هل أنت متأكد من أنك تريد حذف هذه الصورة؟', 'image_delete_confirm_text' => 'هل أنت متأكد من أنك تريد حذف هذه الصورة؟',
'image_select_image' => 'تحديد الصورة', 'image_select_image' => 'تحديد الصورة',
'image_dropzone' => 'قم بإسقاط الصورة أو اضغط هنا للرفع', 'image_dropzone' => 'قم بإسقاط الصورة أو اضغط هنا للرفع',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'تم حذف الصور', 'images_deleted' => 'تم حذف الصور',
'image_preview' => 'معاينة الصور', 'image_preview' => 'معاينة الصور',
'image_upload_success' => 'تم رفع الصورة بنجاح', 'image_upload_success' => 'تم رفع الصورة بنجاح',
'image_update_success' => 'تم تحديث تفاصيل الصورة بنجاح', 'image_update_success' => 'تم تحديث تفاصيل الصورة بنجاح',
'image_delete_success' => 'تم حذف الصورة بنجاح', 'image_delete_success' => 'تم حذف الصورة بنجاح',
'image_upload_remove' => 'إزالة',
// Code Editor // Code Editor
'code_editor' => 'تعديل الشفرة', 'code_editor' => 'تعديل الشفرة',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'المرفقات', 'attachments' => 'المرفقات',
'attachments_explain' => 'ارفع بعض الملفات أو أرفق بعض الروابط لعرضها بصفحتك. ستكون الملفات والروابط معروضة في الشريط الجانبي للصفحة.', 'attachments_explain' => 'ارفع بعض الملفات أو أرفق بعض الروابط لعرضها بصفحتك. ستكون الملفات والروابط معروضة في الشريط الجانبي للصفحة.',
'attachments_explain_instant_save' => 'سيتم حفظ التغييرات هنا آنيا.', 'attachments_explain_instant_save' => 'سيتم حفظ التغييرات هنا آنيا.',
'attachments_items' => 'العناصر المرفقة',
'attachments_upload' => 'رفع ملف', 'attachments_upload' => 'رفع ملف',
'attachments_link' => 'إرفاق رابط', 'attachments_link' => 'إرفاق رابط',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'تحديد الرابط', 'attachments_set_link' => 'تحديد الرابط',
'attachments_delete' => 'هل أنت متأكد من أنك تريد حذف هذا المرفق؟', 'attachments_delete' => 'هل أنت متأكد من أنك تريد حذف هذا المرفق؟',
'attachments_dropzone' => 'أسقط الملفات أو اضغط هنا لإرفاق ملف', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'لم تُرفع أي ملفات', 'attachments_no_files' => 'لم تُرفع أي ملفات',
'attachments_explain_link' => 'بالإمكان إرفاق رابط في حال عدم تفضيل رفع ملف. قد يكون الرابط لصفحة أخرى أو لملف في أحد خدمات التخزين السحابي.', 'attachments_explain_link' => 'بالإمكان إرفاق رابط في حال عدم تفضيل رفع ملف. قد يكون الرابط لصفحة أخرى أو لملف في أحد خدمات التخزين السحابي.',
'attachments_link_name' => 'اسم الرابط', 'attachments_link_name' => 'اسم الرابط',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'لا يمكن للخادم إنشاء صور مصغرة. الرجاء التأكد من تثبيت إضافة GD PHP.', 'cannot_create_thumbs' => 'لا يمكن للخادم إنشاء صور مصغرة. الرجاء التأكد من تثبيت إضافة GD PHP.',
'server_upload_limit' => 'الخادم لا يسمح برفع ملفات بهذا الحجم. الرجاء محاولة الرفع بحجم أصغر.', 'server_upload_limit' => 'الخادم لا يسمح برفع ملفات بهذا الحجم. الرجاء محاولة الرفع بحجم أصغر.',
'uploaded' => 'الخادم لا يسمح برفع ملفات بهذا الحجم. الرجاء محاولة الرفع بحجم أصغر.', 'uploaded' => 'الخادم لا يسمح برفع ملفات بهذا الحجم. الرجاء محاولة الرفع بحجم أصغر.',
'file_upload_timeout' => 'انتهت عملية تحميل الملف.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'حدث خطأ خلال رفع الصورة', 'image_upload_error' => 'حدث خطأ خلال رفع الصورة',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'لم يتم العثور على المرفق', 'attachment_not_found' => 'لم يتم العثور على المرفق',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'فشل حفظ المسودة. الرجاء التأكد من وجود اتصال بالإنترنت قبل حفظ الصفحة', 'page_draft_autosave_fail' => 'فشل حفظ المسودة. الرجاء التأكد من وجود اتصال بالإنترنت قبل حفظ الصفحة',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Избор на изображение', 'image_select' => 'Избор на изображение',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Всички', 'image_all' => 'Всички',
'image_all_title' => 'Преглед на всички изображения', 'image_all_title' => 'Преглед на всички изображения',
'image_book_title' => 'Виж изображенията прикачени към тази книга', 'image_book_title' => 'Виж изображенията прикачени към тази книга',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Сигурни ли сте, че искате да изтриете това изображение?', 'image_delete_confirm_text' => 'Сигурни ли сте, че искате да изтриете това изображение?',
'image_select_image' => 'Изберете изображение', 'image_select_image' => 'Изберете изображение',
'image_dropzone' => 'Поставете тук изображение или кликнете тук за да качите', 'image_dropzone' => 'Поставете тук изображение или кликнете тук за да качите',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Изображението е изтрито', 'images_deleted' => 'Изображението е изтрито',
'image_preview' => 'Преглед на изображенията', 'image_preview' => 'Преглед на изображенията',
'image_upload_success' => 'Изображението бе качено успешно', 'image_upload_success' => 'Изображението бе качено успешно',
'image_update_success' => 'Данните за изобтажението са обновенни успешно', 'image_update_success' => 'Данните за изобтажението са обновенни успешно',
'image_delete_success' => 'Изображението е успешно изтрито', 'image_delete_success' => 'Изображението е успешно изтрито',
'image_upload_remove' => 'Премахване',
// Code Editor // Code Editor
'code_editor' => 'Редактиране на кода', 'code_editor' => 'Редактиране на кода',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Прикачени файлове', 'attachments' => 'Прикачени файлове',
'attachments_explain' => 'Прикачете файлове или линкове, които да са видими на вашата страница. Същите ще бъдат видими във вашето странично поле.', 'attachments_explain' => 'Прикачете файлове или линкове, които да са видими на вашата страница. Същите ще бъдат видими във вашето странично поле.',
'attachments_explain_instant_save' => 'Промените тук се запазват веднага.', 'attachments_explain_instant_save' => 'Промените тук се запазват веднага.',
'attachments_items' => 'Прикачен файл',
'attachments_upload' => 'Прикачен файл', 'attachments_upload' => 'Прикачен файл',
'attachments_link' => 'Прикачване на линк', 'attachments_link' => 'Прикачване на линк',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Поставяне на линк', 'attachments_set_link' => 'Поставяне на линк',
'attachments_delete' => 'Сигурни ли сте, че искате да изтриете прикачения файл?', 'attachments_delete' => 'Сигурни ли сте, че искате да изтриете прикачения файл?',
'attachments_dropzone' => 'Поставете файлове или цъкнете тук за да прикачите файл', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Няма прикачени фалове', 'attachments_no_files' => 'Няма прикачени фалове',
'attachments_explain_link' => 'Може да прикачите линк, ако не искате да качвате файл. Този линк може да бъде към друга страница или към файл в облакова пространство.', 'attachments_explain_link' => 'Може да прикачите линк, ако не искате да качвате файл. Този линк може да бъде към друга страница или към файл в облакова пространство.',
'attachments_link_name' => 'Има на линка', 'attachments_link_name' => 'Има на линка',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Сървърът не може да създаде малки изображения. Моля, увери се, че разширението GD PHP е инсталирано.', 'cannot_create_thumbs' => 'Сървърът не може да създаде малки изображения. Моля, увери се, че разширението GD PHP е инсталирано.',
'server_upload_limit' => 'Сървърът не позволява качвания с такъв размер. Моля, пробвайте файл с по-малък размер.', 'server_upload_limit' => 'Сървърът не позволява качвания с такъв размер. Моля, пробвайте файл с по-малък размер.',
'uploaded' => 'Сървърът не позволява качвания с такъв размер. Моля, пробвайте файл с по-малък размер.', 'uploaded' => 'Сървърът не позволява качвания с такъв размер. Моля, пробвайте файл с по-малък размер.',
'file_upload_timeout' => 'Качването на файла изтече.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Възникна грешка при качването на изображението', 'image_upload_error' => 'Възникна грешка при качването на изображението',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Прикачения файл не е намерен', 'attachment_not_found' => 'Прикачения файл не е намерен',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Неуспешно запазване на черновата. Увери се, че имаш свързаност с интернет преди да запазиш страницата', 'page_draft_autosave_fail' => 'Неуспешно запазване на черновата. Увери се, че имаш свързаност с интернет преди да запазиш страницата',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Biraj sliku', 'image_select' => 'Biraj sliku',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Sve', 'image_all' => 'Sve',
'image_all_title' => 'Pogledaj sve slike', 'image_all_title' => 'Pogledaj sve slike',
'image_book_title' => 'Pogledaj slike prenesene u ovu knjigu', 'image_book_title' => 'Pogledaj slike prenesene u ovu knjigu',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Jeste li sigurni da želite obrisati ovu sliku?', 'image_delete_confirm_text' => 'Jeste li sigurni da želite obrisati ovu sliku?',
'image_select_image' => 'Odaberi sliku', 'image_select_image' => 'Odaberi sliku',
'image_dropzone' => 'Ostavi slike ili pritisnite ovdje da ih prenesete', 'image_dropzone' => 'Ostavi slike ili pritisnite ovdje da ih prenesete',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Slike su izbrisane', 'images_deleted' => 'Slike su izbrisane',
'image_preview' => 'Pregled Slike', 'image_preview' => 'Pregled Slike',
'image_upload_success' => 'Slika uspješno učitana', 'image_upload_success' => 'Slika uspješno učitana',
'image_update_success' => 'Detalji slike uspješno ažurirani', 'image_update_success' => 'Detalji slike uspješno ažurirani',
'image_delete_success' => 'Slika uspješno izbrisana', 'image_delete_success' => 'Slika uspješno izbrisana',
'image_upload_remove' => 'Ukloni',
// Code Editor // Code Editor
'code_editor' => 'Uredi Kod', 'code_editor' => 'Uredi Kod',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Prilozi', 'attachments' => 'Prilozi',
'attachments_explain' => 'Učitajte fajlove ili priložite poveznice da bi ih prikazali na stranici. Oni su onda vidljivi u navigaciji sa strane.', 'attachments_explain' => 'Učitajte fajlove ili priložite poveznice da bi ih prikazali na stranici. Oni su onda vidljivi u navigaciji sa strane.',
'attachments_explain_instant_save' => 'Sve promjene se snimaju odmah.', 'attachments_explain_instant_save' => 'Sve promjene se snimaju odmah.',
'attachments_items' => 'Priložene stavke',
'attachments_upload' => 'Učitaj fajl', 'attachments_upload' => 'Učitaj fajl',
'attachments_link' => 'Zakači link', 'attachments_link' => 'Zakači link',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Postavi link', 'attachments_set_link' => 'Postavi link',
'attachments_delete' => 'Jeste li sigurni da želite obrisati ovaj prilog?', 'attachments_delete' => 'Jeste li sigurni da želite obrisati ovaj prilog?',
'attachments_dropzone' => 'Spustite fajlove ili pritisnite ovdje da priložite fajl', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Niti jedan fajl nije prenesen', 'attachments_no_files' => 'Niti jedan fajl nije prenesen',
'attachments_explain_link' => 'Možete zakačiti link ako ne želite učitati fajl. To može biti link druge stranice ili link za fajl u oblaku.', 'attachments_explain_link' => 'Možete zakačiti link ako ne želite učitati fajl. To može biti link druge stranice ili link za fajl u oblaku.',
'attachments_link_name' => 'Naziv linka', 'attachments_link_name' => 'Naziv linka',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Server ne može kreirati sličice. Provjerite da imate instaliranu GD PHP ekstenziju.', 'cannot_create_thumbs' => 'Server ne može kreirati sličice. Provjerite da imate instaliranu GD PHP ekstenziju.',
'server_upload_limit' => 'Server ne dopušta učitavanja ove veličine. Pokušajte sa manjom veličinom fajla.', 'server_upload_limit' => 'Server ne dopušta učitavanja ove veličine. Pokušajte sa manjom veličinom fajla.',
'uploaded' => 'Server ne dopušta učitavanja ove veličine. Pokušajte sa manjom veličinom fajla.', 'uploaded' => 'Server ne dopušta učitavanja ove veličine. Pokušajte sa manjom veličinom fajla.',
'file_upload_timeout' => 'Vrijeme učitavanja fajla je isteklo.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Desila se greška prilikom učitavanja slike', 'image_upload_error' => 'Desila se greška prilikom učitavanja slike',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Prilog nije pronađen', 'attachment_not_found' => 'Prilog nije pronađen',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Snimanje skice nije uspjelo. Provjerite da ste povezani na internet prije snimanja ove stranice', 'page_draft_autosave_fail' => 'Snimanje skice nije uspjelo. Provjerite da ste povezani na internet prije snimanja ove stranice',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Selecciona una imatge', 'image_select' => 'Selecciona una imatge',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Totes', 'image_all' => 'Totes',
'image_all_title' => 'Mostra totes les imatges', 'image_all_title' => 'Mostra totes les imatges',
'image_book_title' => 'Mostra les imatges pujades a aquest llibre', 'image_book_title' => 'Mostra les imatges pujades a aquest llibre',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Segur que voleu suprimir aquesta imatge?', 'image_delete_confirm_text' => 'Segur que voleu suprimir aquesta imatge?',
'image_select_image' => 'Selecciona una imatge', 'image_select_image' => 'Selecciona una imatge',
'image_dropzone' => 'Arrossegueu imatges o feu clic aquí per a pujar-les', 'image_dropzone' => 'Arrossegueu imatges o feu clic aquí per a pujar-les',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Imatges suprimides', 'images_deleted' => 'Imatges suprimides',
'image_preview' => 'Previsualització de la imatge', 'image_preview' => 'Previsualització de la imatge',
'image_upload_success' => 'Imatge pujada correctament', 'image_upload_success' => 'Imatge pujada correctament',
'image_update_success' => 'Detalls de la imatge actualitzats correctament', 'image_update_success' => 'Detalls de la imatge actualitzats correctament',
'image_delete_success' => 'Imatge suprimida correctament', 'image_delete_success' => 'Imatge suprimida correctament',
'image_upload_remove' => 'Suprimeix',
// Code Editor // Code Editor
'code_editor' => 'Edita el codi', 'code_editor' => 'Edita el codi',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Adjuncions', 'attachments' => 'Adjuncions',
'attachments_explain' => 'Pugeu fitxers o adjunteu enllaços per a mostrar-los a la pàgina. Són visibles a la barra lateral de la pàgina.', 'attachments_explain' => 'Pugeu fitxers o adjunteu enllaços per a mostrar-los a la pàgina. Són visibles a la barra lateral de la pàgina.',
'attachments_explain_instant_save' => 'Els canvis fets aquí es desen instantàniament.', 'attachments_explain_instant_save' => 'Els canvis fets aquí es desen instantàniament.',
'attachments_items' => 'Elements adjunts',
'attachments_upload' => 'Puja un fitxer', 'attachments_upload' => 'Puja un fitxer',
'attachments_link' => 'Adjunta un enllaç', 'attachments_link' => 'Adjunta un enllaç',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Defineix l\'enllaç', 'attachments_set_link' => 'Defineix l\'enllaç',
'attachments_delete' => 'Seguir que voleu suprimir aquesta adjunció?', 'attachments_delete' => 'Seguir que voleu suprimir aquesta adjunció?',
'attachments_dropzone' => 'Arrossegueu fitxers o feu clic aquí per a adjuntar un fitxer', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'No s\'ha pujat cap fitxer', 'attachments_no_files' => 'No s\'ha pujat cap fitxer',
'attachments_explain_link' => 'Podeu adjuntar un enllaç si preferiu no pujar un fitxer. Pot ser un enllaç a una altra pàgina o un enllaç a un fitxer al núvol.', 'attachments_explain_link' => 'Podeu adjuntar un enllaç si preferiu no pujar un fitxer. Pot ser un enllaç a una altra pàgina o un enllaç a un fitxer al núvol.',
'attachments_link_name' => 'Nom de l\'enllaç', 'attachments_link_name' => 'Nom de l\'enllaç',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'El servidor no pot crear miniatures. Reviseu que tingueu instal·lada l\'extensió GD del PHP.', 'cannot_create_thumbs' => 'El servidor no pot crear miniatures. Reviseu que tingueu instal·lada l\'extensió GD del PHP.',
'server_upload_limit' => 'El servidor no permet pujades d\'aquesta mida. Proveu-ho amb una mida de fitxer més petita.', 'server_upload_limit' => 'El servidor no permet pujades d\'aquesta mida. Proveu-ho amb una mida de fitxer més petita.',
'uploaded' => 'El servidor no permet pujades d\'aquesta mida. Proveu-ho amb una mida de fitxer més petita.', 'uploaded' => 'El servidor no permet pujades d\'aquesta mida. Proveu-ho amb una mida de fitxer més petita.',
'file_upload_timeout' => 'La pujada del fitxer ha superat el temps màxim d\'espera.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'S\'ha produït un error en pujar la imatge', 'image_upload_error' => 'S\'ha produït un error en pujar la imatge',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'No s\'ha trobat l\'adjunció', 'attachment_not_found' => 'No s\'ha trobat l\'adjunció',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'No s\'ha pogut desar l\'esborrany. Assegureu-vos que tingueu connexió a Internet abans de desar la pàgina', 'page_draft_autosave_fail' => 'No s\'ha pogut desar l\'esborrany. Assegureu-vos que tingueu connexió a Internet abans de desar la pàgina',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Výběr obrázku', 'image_select' => 'Výběr obrázku',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Vše', 'image_all' => 'Vše',
'image_all_title' => 'Zobrazit všechny obrázky', 'image_all_title' => 'Zobrazit všechny obrázky',
'image_book_title' => 'Zobrazit obrázky nahrané do této knihy', 'image_book_title' => 'Zobrazit obrázky nahrané do této knihy',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Opravdu chcete odstranit tento obrázek?', 'image_delete_confirm_text' => 'Opravdu chcete odstranit tento obrázek?',
'image_select_image' => 'Zvolte obrázek', 'image_select_image' => 'Zvolte obrázek',
'image_dropzone' => 'Přetáhněte obrázky nebo klikněte sem pro nahrání', 'image_dropzone' => 'Přetáhněte obrázky nebo klikněte sem pro nahrání',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Obrázky odstraněny', 'images_deleted' => 'Obrázky odstraněny',
'image_preview' => 'Náhled obrázku', 'image_preview' => 'Náhled obrázku',
'image_upload_success' => 'Obrázek byl nahrán', 'image_upload_success' => 'Obrázek byl nahrán',
'image_update_success' => 'Podrobnosti o obrázku byly aktualizovány', 'image_update_success' => 'Podrobnosti o obrázku byly aktualizovány',
'image_delete_success' => 'Obrázek byl odstraněn', 'image_delete_success' => 'Obrázek byl odstraněn',
'image_upload_remove' => 'Odebrat',
// Code Editor // Code Editor
'code_editor' => 'Upravit kód', 'code_editor' => 'Upravit kód',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Přílohy', 'attachments' => 'Přílohy',
'attachments_explain' => 'Nahrajte soubory nebo připojte odkazy, které se zobrazí na stránce. Budou k nalezení v postranní liště.', 'attachments_explain' => 'Nahrajte soubory nebo připojte odkazy, které se zobrazí na stránce. Budou k nalezení v postranní liště.',
'attachments_explain_instant_save' => 'Změny zde provedené se okamžitě ukládají.', 'attachments_explain_instant_save' => 'Změny zde provedené se okamžitě ukládají.',
'attachments_items' => 'Připojené položky',
'attachments_upload' => 'Nahrát soubor', 'attachments_upload' => 'Nahrát soubor',
'attachments_link' => 'Připojit odkaz', 'attachments_link' => 'Připojit odkaz',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Nastavit odkaz', 'attachments_set_link' => 'Nastavit odkaz',
'attachments_delete' => 'Jste si jisti, že chcete odstranit tuto přílohu?', 'attachments_delete' => 'Jste si jisti, že chcete odstranit tuto přílohu?',
'attachments_dropzone' => 'Přetáhněte sem soubory myší nebo sem klikněte pro vybrání souboru', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Žádné soubory nebyly nahrány', 'attachments_no_files' => 'Žádné soubory nebyly nahrány',
'attachments_explain_link' => 'Můžete pouze připojit odkaz pokud nechcete nahrávat soubor přímo. Může to být odkaz na jinou stránku nebo na soubor v cloudu.', 'attachments_explain_link' => 'Můžete pouze připojit odkaz pokud nechcete nahrávat soubor přímo. Může to být odkaz na jinou stránku nebo na soubor v cloudu.',
'attachments_link_name' => 'Název odkazu', 'attachments_link_name' => 'Název odkazu',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Server nedokáže udělat náhledy. Zkontrolujte, že rozšíření GD pro PHP je nainstalováno.', 'cannot_create_thumbs' => 'Server nedokáže udělat náhledy. Zkontrolujte, že rozšíření GD pro PHP je nainstalováno.',
'server_upload_limit' => 'Server nepovoluje nahrávat tak veliké soubory. Zkuste prosím menší soubor.', 'server_upload_limit' => 'Server nepovoluje nahrávat tak veliké soubory. Zkuste prosím menší soubor.',
'uploaded' => 'Server nepovoluje nahrávat tak veliké soubory. Zkuste prosím menší soubor.', 'uploaded' => 'Server nepovoluje nahrávat tak veliké soubory. Zkuste prosím menší soubor.',
'file_upload_timeout' => 'Nahrávání souboru trvalo příliš dlouho a tak bylo ukončeno.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Nastala chyba během nahrávání souboru', 'image_upload_error' => 'Nastala chyba během nahrávání souboru',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Příloha nenalezena', 'attachment_not_found' => 'Příloha nenalezena',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Nepovedlo se uložit koncept. Než stránku uložíte, ujistěte se, že jste připojeni k internetu.', 'page_draft_autosave_fail' => 'Nepovedlo se uložit koncept. Než stránku uložíte, ujistěte se, že jste připojeni k internetu.',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Image Select', 'image_select' => 'Image Select',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'All', 'image_all' => 'All',
'image_all_title' => 'View all images', 'image_all_title' => 'View all images',
'image_book_title' => 'View images uploaded to this book', 'image_book_title' => 'View images uploaded to this book',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Are you sure you want to delete this image?', 'image_delete_confirm_text' => 'Are you sure you want to delete this image?',
'image_select_image' => 'Select Image', 'image_select_image' => 'Select Image',
'image_dropzone' => 'Drop images or click here to upload', 'image_dropzone' => 'Drop images or click here to upload',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Images Deleted', 'images_deleted' => 'Images Deleted',
'image_preview' => 'Image Preview', 'image_preview' => 'Image Preview',
'image_upload_success' => 'Image uploaded successfully', 'image_upload_success' => 'Image uploaded successfully',
'image_update_success' => 'Image details successfully updated', 'image_update_success' => 'Image details successfully updated',
'image_delete_success' => 'Image successfully deleted', 'image_delete_success' => 'Image successfully deleted',
'image_upload_remove' => 'Remove',
// Code Editor // Code Editor
'code_editor' => 'Edit Code', 'code_editor' => 'Edit Code',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Attachments', 'attachments' => 'Attachments',
'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_upload' => 'Upload File', 'attachments_upload' => 'Upload File',
'attachments_link' => 'Attach Link', 'attachments_link' => 'Attach Link',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'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 here to upload',
'attachments_no_files' => 'No files have been uploaded', 'attachments_no_files' => 'No files have been uploaded',
'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' => 'Link Name',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Ni all y gweinydd greu mân-luniau. Gwiriwch fod gennych yr estyniad GD PHP wedi\'i osod.', 'cannot_create_thumbs' => 'Ni all y gweinydd greu mân-luniau. Gwiriwch fod gennych yr estyniad GD PHP wedi\'i osod.',
'server_upload_limit' => 'Nid yw\'r gweinydd yn caniatáu uwchlwythiadau o\'r maint hwn. Rhowch gynnig ar faint ffeil llai.', 'server_upload_limit' => 'Nid yw\'r gweinydd yn caniatáu uwchlwythiadau o\'r maint hwn. Rhowch gynnig ar faint ffeil llai.',
'uploaded' => 'Nid yw\'r gweinydd yn caniatáu uwchlwythiadau o\'r maint hwn. Rhowch gynnig ar faint ffeil llai.', 'uploaded' => 'Nid yw\'r gweinydd yn caniatáu uwchlwythiadau o\'r maint hwn. Rhowch gynnig ar faint ffeil llai.',
'file_upload_timeout' => 'Mae\'r amser uwchlwytho ffeil wedi dod i ben.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Bu gwall wrth uwchlwytho\'r ddelwedd', 'image_upload_error' => 'Bu gwall wrth uwchlwytho\'r ddelwedd',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Ni chanfuwyd yr atodiad', 'attachment_not_found' => 'Ni chanfuwyd yr atodiad',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Wedi methu cadw\'r drafft. Sicrhewch fod gennych gysylltiad rhyngrwyd cyn cadw\'r dudalen hon', 'page_draft_autosave_fail' => 'Wedi methu cadw\'r drafft. Sicrhewch fod gennych gysylltiad rhyngrwyd cyn cadw\'r dudalen hon',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Billedselektion', 'image_select' => 'Billedselektion',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Alt', 'image_all' => 'Alt',
'image_all_title' => 'Se alle billeder', 'image_all_title' => 'Se alle billeder',
'image_book_title' => 'Vis billeder uploadet til denne bog', 'image_book_title' => 'Vis billeder uploadet til denne bog',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Er du sikker på at du vil slette dette billede?', 'image_delete_confirm_text' => 'Er du sikker på at du vil slette dette billede?',
'image_select_image' => 'Vælg billede', 'image_select_image' => 'Vælg billede',
'image_dropzone' => 'Træk-og-slip billede eller klik her for at uploade', 'image_dropzone' => 'Træk-og-slip billede eller klik her for at uploade',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Billede slettet', 'images_deleted' => 'Billede slettet',
'image_preview' => 'Billedeksempel', 'image_preview' => 'Billedeksempel',
'image_upload_success' => 'Foto uploadet', 'image_upload_success' => 'Foto uploadet',
'image_update_success' => 'Billeddetaljer succesfuldt opdateret', 'image_update_success' => 'Billeddetaljer succesfuldt opdateret',
'image_delete_success' => 'Billede slettet', 'image_delete_success' => 'Billede slettet',
'image_upload_remove' => 'Fjern',
// Code Editor // Code Editor
'code_editor' => 'Rediger kode', 'code_editor' => 'Rediger kode',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Vedhæftninger', 'attachments' => 'Vedhæftninger',
'attachments_explain' => 'Upload nogle filer, eller vedhæft nogle links, der skal vises på siden. Disse er synlige i sidepanelet.', 'attachments_explain' => 'Upload nogle filer, eller vedhæft nogle links, der skal vises på siden. Disse er synlige i sidepanelet.',
'attachments_explain_instant_save' => 'Ændringer her gemmes med det samme.', 'attachments_explain_instant_save' => 'Ændringer her gemmes med det samme.',
'attachments_items' => 'Vedhæftede emner',
'attachments_upload' => 'Upload fil', 'attachments_upload' => 'Upload fil',
'attachments_link' => 'Vedhæft link', 'attachments_link' => 'Vedhæft link',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Sæt link', 'attachments_set_link' => 'Sæt link',
'attachments_delete' => 'Er du sikker på at du vil slette denne vedhæftning?', 'attachments_delete' => 'Er du sikker på at du vil slette denne vedhæftning?',
'attachments_dropzone' => 'Slip filer eller klik her for at vedhæfte en fil', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Ingen filer er blevet overført', 'attachments_no_files' => 'Ingen filer er blevet overført',
'attachments_explain_link' => 'Du kan vedhæfte et link, hvis du foretrækker ikke at uploade en fil. Dette kan være et link til en anden side eller et link til en fil i skyen.', 'attachments_explain_link' => 'Du kan vedhæfte et link, hvis du foretrækker ikke at uploade en fil. Dette kan være et link til en anden side eller et link til en fil i skyen.',
'attachments_link_name' => 'Linknavn', 'attachments_link_name' => 'Linknavn',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Serveren kan ikke oprette miniaturer. Kontroller, at GD PHP-udvidelsen er installeret.', 'cannot_create_thumbs' => 'Serveren kan ikke oprette miniaturer. Kontroller, at GD PHP-udvidelsen er installeret.',
'server_upload_limit' => 'Serveren tillader ikke uploads af denne størrelse. Prøv en mindre filstørrelse.', 'server_upload_limit' => 'Serveren tillader ikke uploads af denne størrelse. Prøv en mindre filstørrelse.',
'uploaded' => 'Serveren tillader ikke uploads af denne størrelse. Prøv en mindre filstørrelse.', 'uploaded' => 'Serveren tillader ikke uploads af denne størrelse. Prøv en mindre filstørrelse.',
'file_upload_timeout' => 'Filuploaden udløb.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Der opstod en fejl ved upload af billedet', 'image_upload_error' => 'Der opstod en fejl ved upload af billedet',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Vedhæftning ikke fundet', 'attachment_not_found' => 'Vedhæftning ikke fundet',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Kunne ikke gemme kladde. Tjek at du har internetforbindelse før du gemmer siden', 'page_draft_autosave_fail' => 'Kunne ikke gemme kladde. Tjek at du har internetforbindelse før du gemmer siden',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Bild auswählen', 'image_select' => 'Bild auswählen',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Alle', 'image_all' => 'Alle',
'image_all_title' => 'Alle Bilder anzeigen', 'image_all_title' => 'Alle Bilder anzeigen',
'image_book_title' => 'Zeige alle Bilder, die in dieses Buch hochgeladen wurden', 'image_book_title' => 'Zeige alle Bilder, die in dieses Buch hochgeladen wurden',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Möchten Sie dieses Bild wirklich löschen?', 'image_delete_confirm_text' => 'Möchten Sie dieses Bild wirklich löschen?',
'image_select_image' => 'Bild auswählen', 'image_select_image' => 'Bild auswählen',
'image_dropzone' => 'Ziehen Sie Bilder hierher oder klicken Sie hier, um ein Bild auszuwählen', 'image_dropzone' => 'Ziehen Sie Bilder hierher oder klicken Sie hier, um ein Bild auszuwählen',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Bilder gelöscht', 'images_deleted' => 'Bilder gelöscht',
'image_preview' => 'Bildvorschau', 'image_preview' => 'Bildvorschau',
'image_upload_success' => 'Bild erfolgreich hochgeladen', 'image_upload_success' => 'Bild erfolgreich hochgeladen',
'image_update_success' => 'Bilddetails erfolgreich aktualisiert', 'image_update_success' => 'Bilddetails erfolgreich aktualisiert',
'image_delete_success' => 'Bild erfolgreich gelöscht', 'image_delete_success' => 'Bild erfolgreich gelöscht',
'image_upload_remove' => 'Entfernen',
// Code Editor // Code Editor
'code_editor' => 'Code editieren', 'code_editor' => 'Code editieren',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Anhänge', 'attachments' => 'Anhänge',
'attachments_explain' => 'Sie können auf Ihrer Seite Dateien hochladen oder Links hinzufügen. Diese werden in der Seitenleiste angezeigt.', 'attachments_explain' => 'Sie können auf Ihrer Seite Dateien hochladen oder Links hinzufügen. Diese werden in der Seitenleiste angezeigt.',
'attachments_explain_instant_save' => 'Änderungen werden direkt gespeichert.', 'attachments_explain_instant_save' => 'Änderungen werden direkt gespeichert.',
'attachments_items' => 'Angefügte Elemente',
'attachments_upload' => 'Datei hochladen', 'attachments_upload' => 'Datei hochladen',
'attachments_link' => 'Link hinzufügen', 'attachments_link' => 'Link hinzufügen',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Link setzen', 'attachments_set_link' => 'Link setzen',
'attachments_delete' => 'Sind Sie sicher, dass Sie diesen Anhang löschen möchten?', 'attachments_delete' => 'Sind Sie sicher, dass Sie diesen Anhang löschen möchten?',
'attachments_dropzone' => 'Ziehen Sie Dateien hierher oder klicken Sie, um eine Datei auszuwählen', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Es wurden bisher keine Dateien hochgeladen.', 'attachments_no_files' => 'Es wurden bisher keine Dateien hochgeladen.',
'attachments_explain_link' => 'Wenn Sie keine Datei hochladen möchten, können Sie stattdessen einen Link hinzufügen. Dieser Link kann auf eine andere Seite oder eine Datei im Internet weisen.', 'attachments_explain_link' => 'Wenn Sie keine Datei hochladen möchten, können Sie stattdessen einen Link hinzufügen. Dieser Link kann auf eine andere Seite oder eine Datei im Internet weisen.',
'attachments_link_name' => 'Link-Name', 'attachments_link_name' => 'Link-Name',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Der Server kann keine Vorschau-Bilder erzeugen. Bitte prüfen Sie, ob die GD PHP-Erweiterung installiert ist.', 'cannot_create_thumbs' => 'Der Server kann keine Vorschau-Bilder erzeugen. Bitte prüfen Sie, ob die GD PHP-Erweiterung installiert ist.',
'server_upload_limit' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuchen Sie es mit einer kleineren Datei.', 'server_upload_limit' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuchen Sie es mit einer kleineren Datei.',
'uploaded' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuchen Sie es mit einer kleineren Datei.', 'uploaded' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuchen Sie es mit einer kleineren Datei.',
'file_upload_timeout' => 'Der Datei-Upload hat das Zeitlimit überschritten.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Beim Hochladen des Bildes trat ein Fehler auf.', 'image_upload_error' => 'Beim Hochladen des Bildes trat ein Fehler auf.',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Anhang konnte nicht gefunden werden.', 'attachment_not_found' => 'Anhang konnte nicht gefunden werden.',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Fehler beim Speichern des Entwurfs. Stellen Sie sicher, dass Sie mit dem Internet verbunden sind, bevor Sie den Entwurf dieser Seite speichern.', 'page_draft_autosave_fail' => 'Fehler beim Speichern des Entwurfs. Stellen Sie sicher, dass Sie mit dem Internet verbunden sind, bevor Sie den Entwurf dieser Seite speichern.',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Bild auswählen', 'image_select' => 'Bild auswählen',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Alle', 'image_all' => 'Alle',
'image_all_title' => 'Alle Bilder anzeigen', 'image_all_title' => 'Alle Bilder anzeigen',
'image_book_title' => 'Zeige alle Bilder, die in dieses Buch hochgeladen wurden', 'image_book_title' => 'Zeige alle Bilder, die in dieses Buch hochgeladen wurden',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Bist Du sicher, dass Du diese Seite löschen möchtest?', 'image_delete_confirm_text' => 'Bist Du sicher, dass Du diese Seite löschen möchtest?',
'image_select_image' => 'Bild auswählen', 'image_select_image' => 'Bild auswählen',
'image_dropzone' => 'Ziehe Bilder hierher oder klicke hier, um ein Bild auszuwählen', 'image_dropzone' => 'Ziehe Bilder hierher oder klicke hier, um ein Bild auszuwählen',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Bilder gelöscht', 'images_deleted' => 'Bilder gelöscht',
'image_preview' => 'Bildvorschau', 'image_preview' => 'Bildvorschau',
'image_upload_success' => 'Bild erfolgreich hochgeladen', 'image_upload_success' => 'Bild erfolgreich hochgeladen',
'image_update_success' => 'Bilddetails erfolgreich aktualisiert', 'image_update_success' => 'Bilddetails erfolgreich aktualisiert',
'image_delete_success' => 'Bild erfolgreich gelöscht', 'image_delete_success' => 'Bild erfolgreich gelöscht',
'image_upload_remove' => 'Entfernen',
// Code Editor // Code Editor
'code_editor' => 'Code editieren', 'code_editor' => 'Code editieren',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Anhänge', 'attachments' => 'Anhänge',
'attachments_explain' => 'Du kannst auf deiner Seite Dateien hochladen oder Links hinzufügen. Diese werden in der Seitenleiste angezeigt.', 'attachments_explain' => 'Du kannst auf deiner Seite Dateien hochladen oder Links hinzufügen. Diese werden in der Seitenleiste angezeigt.',
'attachments_explain_instant_save' => 'Änderungen werden direkt gespeichert.', 'attachments_explain_instant_save' => 'Änderungen werden direkt gespeichert.',
'attachments_items' => 'Angefügte Elemente',
'attachments_upload' => 'Datei hochladen', 'attachments_upload' => 'Datei hochladen',
'attachments_link' => 'Link hinzufügen', 'attachments_link' => 'Link hinzufügen',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Link setzen', 'attachments_set_link' => 'Link setzen',
'attachments_delete' => 'Bist du sicher, dass du diesen Anhang löschen möchtest?', 'attachments_delete' => 'Bist du sicher, dass du diesen Anhang löschen möchtest?',
'attachments_dropzone' => 'Ziehe Dateien hierher oder klicke hier, um eine Datei auszuwählen', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Es wurden bisher keine Dateien hochgeladen.', 'attachments_no_files' => 'Es wurden bisher keine Dateien hochgeladen.',
'attachments_explain_link' => 'Wenn du keine Datei hochladen möchtest, kannst du stattdessen einen Link hinzufügen. Dieser Link kann auf eine andere Seite oder eine Datei im Internet verweisen.', 'attachments_explain_link' => 'Wenn du keine Datei hochladen möchtest, kannst du stattdessen einen Link hinzufügen. Dieser Link kann auf eine andere Seite oder eine Datei im Internet verweisen.',
'attachments_link_name' => 'Link-Name', 'attachments_link_name' => 'Link-Name',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Der Server kann keine Vorschau-Bilder erzeugen. Bitte prüfe, ob die GD PHP-Erweiterung installiert ist.', 'cannot_create_thumbs' => 'Der Server kann keine Vorschau-Bilder erzeugen. Bitte prüfe, ob die GD PHP-Erweiterung installiert ist.',
'server_upload_limit' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuche es mit einer kleineren Datei.', 'server_upload_limit' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuche es mit einer kleineren Datei.',
'uploaded' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuche es mit einer kleineren Datei.', 'uploaded' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuche es mit einer kleineren Datei.',
'file_upload_timeout' => 'Der Upload der Datei ist abgelaufen.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Beim Hochladen des Bildes trat ein Fehler auf.', 'image_upload_error' => 'Beim Hochladen des Bildes trat ein Fehler auf.',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Anhang konnte nicht gefunden werden.', 'attachment_not_found' => 'Anhang konnte nicht gefunden werden.',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Fehler beim Speichern des Entwurfs. Stelle sicher, dass du mit dem Internet verbunden bist, bevor du den Entwurf dieser Seite speicherst.', 'page_draft_autosave_fail' => 'Fehler beim Speichern des Entwurfs. Stelle sicher, dass du mit dem Internet verbunden bist, bevor du den Entwurf dieser Seite speicherst.',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Επιλογή εικόνας', 'image_select' => 'Επιλογή εικόνας',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Όλες', 'image_all' => 'Όλες',
'image_all_title' => 'Δείτε όλες τις εικόνες που υπάρχουν στο Server', 'image_all_title' => 'Δείτε όλες τις εικόνες που υπάρχουν στο Server',
'image_book_title' => 'Προβολή εικόνων που έχουν μεταφορτωθεί σε αυτό το βιβλίο', 'image_book_title' => 'Προβολή εικόνων που έχουν μεταφορτωθεί σε αυτό το βιβλίο',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την εικόνα;', 'image_delete_confirm_text' => 'Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την εικόνα;',
'image_select_image' => 'Επιλέξτε Εικόνα', 'image_select_image' => 'Επιλέξτε Εικόνα',
'image_dropzone' => 'Σύρτε ή κάντε κλικ εδώ για μεταφόρτωση εικόνων', 'image_dropzone' => 'Σύρτε ή κάντε κλικ εδώ για μεταφόρτωση εικόνων',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Οι εικόνες διαγράφηκαν', 'images_deleted' => 'Οι εικόνες διαγράφηκαν',
'image_preview' => 'Προεπισκόπηση εικόνας', 'image_preview' => 'Προεπισκόπηση εικόνας',
'image_upload_success' => 'Η εικόνα μεταφορτώθηκε με επιτυχία', 'image_upload_success' => 'Η εικόνα μεταφορτώθηκε με επιτυχία',
'image_update_success' => 'Τα στοιχεία της εικόνας ενημερώθηκαν με επιτυχία', 'image_update_success' => 'Τα στοιχεία της εικόνας ενημερώθηκαν με επιτυχία',
'image_delete_success' => 'Η εικόνα διαγράφηκε επιτυχώς', 'image_delete_success' => 'Η εικόνα διαγράφηκε επιτυχώς',
'image_upload_remove' => 'Αφαίρεση',
// Code Editor // Code Editor
'code_editor' => 'Επεξεργασία κώδικα', 'code_editor' => 'Επεξεργασία κώδικα',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Συνημμένα', 'attachments' => 'Συνημμένα',
'attachments_explain' => 'Ανεβάστε μερικά αρχεία ή επισυνάψτε μερικούς συνδέσμους για να εμφανίσετε στη σελίδα σας. Αυτά είναι ορατά στην πλαϊνή μπάρα σελίδας.', 'attachments_explain' => 'Ανεβάστε μερικά αρχεία ή επισυνάψτε μερικούς συνδέσμους για να εμφανίσετε στη σελίδα σας. Αυτά είναι ορατά στην πλαϊνή μπάρα σελίδας.',
'attachments_explain_instant_save' => 'Οι αλλαγές εδώ αποθηκεύονται αμέσως.', 'attachments_explain_instant_save' => 'Οι αλλαγές εδώ αποθηκεύονται αμέσως.',
'attachments_items' => 'Συνημμένα Στοιχεία',
'attachments_upload' => 'Μεταφόρτωση Αρχείου', 'attachments_upload' => 'Μεταφόρτωση Αρχείου',
'attachments_link' => 'Επισύναψη Δεσμού', 'attachments_link' => 'Επισύναψη Δεσμού',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Ορισμός Συνδέσμου', 'attachments_set_link' => 'Ορισμός Συνδέσμου',
'attachments_delete' => 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το συνημμένο;', 'attachments_delete' => 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το συνημμένο;',
'attachments_dropzone' => 'Αποθέστε αρχεία ή κάντε κλικ εδώ για να επισυνάψετε ένα αρχείο', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Δεν έχουν μεταφορτωθεί αρχεία', 'attachments_no_files' => 'Δεν έχουν μεταφορτωθεί αρχεία',
'attachments_explain_link' => 'Μπορείτε να επισυνάψετε έναν σύνδεσμο αν προτιμάτε να μην ανεβάσετε ένα αρχείο. Αυτό μπορεί να είναι ένας σύνδεσμος σε άλλη σελίδα ή ένας σύνδεσμος σε ένα αρχείο στο σύννεφο.', 'attachments_explain_link' => 'Μπορείτε να επισυνάψετε έναν σύνδεσμο αν προτιμάτε να μην ανεβάσετε ένα αρχείο. Αυτό μπορεί να είναι ένας σύνδεσμος σε άλλη σελίδα ή ένας σύνδεσμος σε ένα αρχείο στο σύννεφο.',
'attachments_link_name' => 'Όνομα Συνδέσμου', 'attachments_link_name' => 'Όνομα Συνδέσμου',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Ο διακομιστής δεν μπορεί να δημιουργήσει μικρογραφίες. Παρακαλώ ελέγξτε ότι έχετε την επέκταση GD PHP εγκατεστημένη.', 'cannot_create_thumbs' => 'Ο διακομιστής δεν μπορεί να δημιουργήσει μικρογραφίες. Παρακαλώ ελέγξτε ότι έχετε την επέκταση GD PHP εγκατεστημένη.',
'server_upload_limit' => 'Ο διακομιστής δεν επιτρέπει τη μεταφόρτωση αυτού του μεγέθους. Παρακαλώ δοκιμάστε ένα μικρότερο μέγεθος αρχείου.', 'server_upload_limit' => 'Ο διακομιστής δεν επιτρέπει τη μεταφόρτωση αυτού του μεγέθους. Παρακαλώ δοκιμάστε ένα μικρότερο μέγεθος αρχείου.',
'uploaded' => 'Ο διακομιστής δεν επιτρέπει τη μεταφόρτωση αυτού του μεγέθους. Παρακαλώ δοκιμάστε ένα μικρότερο μέγεθος αρχείου.', 'uploaded' => 'Ο διακομιστής δεν επιτρέπει τη μεταφόρτωση αυτού του μεγέθους. Παρακαλώ δοκιμάστε ένα μικρότερο μέγεθος αρχείου.',
'file_upload_timeout' => 'Το χρονικό όριο μεταφόρτωσης αρχείου έληξε.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Παρουσιάστηκε σφάλμα κατά το ανέβασμα της εικόνας.', 'image_upload_error' => 'Παρουσιάστηκε σφάλμα κατά το ανέβασμα της εικόνας.',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Το συνημμένο δεν βρέθηκε', 'attachment_not_found' => 'Το συνημμένο δεν βρέθηκε',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Αποτυχία αποθήκευσης προσχέδιου. Βεβαιωθείτε ότι έχετε σύνδεση στο διαδίκτυο πριν την αποθήκευση αυτής της σελίδας', 'page_draft_autosave_fail' => 'Αποτυχία αποθήκευσης προσχέδιου. Βεβαιωθείτε ότι έχετε σύνδεση στο διαδίκτυο πριν την αποθήκευση αυτής της σελίδας',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Image Select', 'image_select' => 'Image Select',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'All', 'image_all' => 'All',
'image_all_title' => 'View all images', 'image_all_title' => 'View all images',
'image_book_title' => 'View images uploaded to this book', 'image_book_title' => 'View images uploaded to this book',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Are you sure you want to delete this image?', 'image_delete_confirm_text' => 'Are you sure you want to delete this image?',
'image_select_image' => 'Select Image', 'image_select_image' => 'Select Image',
'image_dropzone' => 'Drop images or click here to upload', 'image_dropzone' => 'Drop images or click here to upload',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Images Deleted', 'images_deleted' => 'Images Deleted',
'image_preview' => 'Image Preview', 'image_preview' => 'Image Preview',
'image_upload_success' => 'Image uploaded successfully', 'image_upload_success' => 'Image uploaded successfully',
'image_update_success' => 'Image details successfully updated', 'image_update_success' => 'Image details successfully updated',
'image_delete_success' => 'Image successfully deleted', 'image_delete_success' => 'Image successfully deleted',
'image_upload_remove' => 'Remove',
// Code Editor // Code Editor
'code_editor' => 'Edit Code', 'code_editor' => 'Edit Code',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Attachments', 'attachments' => 'Attachments',
'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_upload' => 'Upload File', 'attachments_upload' => 'Upload File',
'attachments_link' => 'Attach Link', 'attachments_link' => 'Attach Link',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'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 here to upload',
'attachments_no_files' => 'No files have been uploaded', 'attachments_no_files' => 'No files have been uploaded',
'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' => 'Link Name',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.', 'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.',
'server_upload_limit' => 'The server does not allow uploads of this size. Please try a smaller file size.', 'server_upload_limit' => 'The server does not allow uploads of this size. Please try a smaller file size.',
'uploaded' => 'The server does not allow uploads of this size. Please try a smaller file size.', 'uploaded' => 'The server does not allow uploads of this size. Please try a smaller file size.',
'file_upload_timeout' => 'The file upload has timed out.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'An error occurred uploading the image', 'image_upload_error' => 'An error occurred uploading the image',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Attachment not found', 'attachment_not_found' => 'Attachment not found',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Failed to save draft. Ensure you have internet connection before saving this page', 'page_draft_autosave_fail' => 'Failed to save draft. Ensure you have internet connection before saving this page',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Seleccionar Imagen', 'image_select' => 'Seleccionar Imagen',
'image_upload' => 'Subir imagen',
'image_intro' => 'Aquí puede seleccionar y administrar las imágenes que se han subido previamente al sistema.',
'image_intro_upload' => 'Suba una nueva imagen arrastrando un archivo de imagen en esta ventana, o usando el botón "Subir imagen" de arriba.',
'image_all' => 'Todas', 'image_all' => 'Todas',
'image_all_title' => 'Ver todas las imágenes', 'image_all_title' => 'Ver todas las imágenes',
'image_book_title' => 'Ver las imágenes subidas a este libro', 'image_book_title' => 'Ver las imágenes subidas a este libro',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => '¿Estás seguro de que quieres eliminar esta imagen?', 'image_delete_confirm_text' => '¿Estás seguro de que quieres eliminar esta imagen?',
'image_select_image' => 'Seleccionar Imagen', 'image_select_image' => 'Seleccionar Imagen',
'image_dropzone' => 'Arrastre las imágenes o hacer click aquí para Subir', 'image_dropzone' => 'Arrastre las imágenes o hacer click aquí para Subir',
'image_dropzone_drop' => 'Arrastre las imágenes aquí para subirlas',
'images_deleted' => 'Imágenes borradas', 'images_deleted' => 'Imágenes borradas',
'image_preview' => 'Previsualización de la imagen', 'image_preview' => 'Previsualización de la imagen',
'image_upload_success' => 'Imagen subida éxitosamente', 'image_upload_success' => 'Imagen subida éxitosamente',
'image_update_success' => 'Detalles de la imagen actualizados exitosamente', 'image_update_success' => 'Detalles de la imagen actualizados exitosamente',
'image_delete_success' => 'Imagen borrada exitosamente', 'image_delete_success' => 'Imagen borrada exitosamente',
'image_upload_remove' => 'Borrar',
// Code Editor // Code Editor
'code_editor' => 'Editar Código', 'code_editor' => 'Editar Código',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Adjuntos', 'attachments' => 'Adjuntos',
'attachments_explain' => 'Subir ficheros o agregar enlaces para mostrar en la página. Estos son visibles en la barra lateral de la página.', 'attachments_explain' => 'Subir ficheros o agregar enlaces para mostrar en la página. Estos son visibles en la barra lateral de la página.',
'attachments_explain_instant_save' => 'Los cambios son guardados de manera instantánea .', 'attachments_explain_instant_save' => 'Los cambios son guardados de manera instantánea .',
'attachments_items' => 'Elementos adjuntados',
'attachments_upload' => 'Subir Archivo', 'attachments_upload' => 'Subir Archivo',
'attachments_link' => 'Adjuntar Enlace', 'attachments_link' => 'Adjuntar Enlace',
'attachments_upload_drop' => 'También puedes arrastrar y soltar un archivo aquí para subirlo como un archivo adjunto.',
'attachments_set_link' => 'Ajustar Enlace', 'attachments_set_link' => 'Ajustar Enlace',
'attachments_delete' => '¿Está seguro de que quiere eliminar este archivo adjunto?', 'attachments_delete' => '¿Está seguro de que quiere eliminar este archivo adjunto?',
'attachments_dropzone' => 'Arrastre ficheros aquí o haga click aquí para adjuntar un fichero', 'attachments_dropzone' => 'Arrastre aquí archivos para subirlos',
'attachments_no_files' => 'No se han subido ficheros', 'attachments_no_files' => 'No se han subido ficheros',
'attachments_explain_link' => 'Puede agregar un enlace si prefiere no subir un archivo. Puede ser un enlace a otra página o un enlace a un fichero en la nube.', 'attachments_explain_link' => 'Puede agregar un enlace si prefiere no subir un archivo. Puede ser un enlace a otra página o un enlace a un fichero en la nube.',
'attachments_link_name' => 'Nombre del Enlace', 'attachments_link_name' => 'Nombre del Enlace',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'El servidor no puede crear la miniatura de la imagen. Compruebe que tiene la extensión PHP GD instalada.', 'cannot_create_thumbs' => 'El servidor no puede crear la miniatura de la imagen. Compruebe que tiene la extensión PHP GD instalada.',
'server_upload_limit' => 'El servidor no permite la subida de ficheros de este tamaño. Intente subir un fichero de menor tamaño.', 'server_upload_limit' => 'El servidor no permite la subida de ficheros de este tamaño. Intente subir un fichero de menor tamaño.',
'uploaded' => 'El servidor no permite la subida de ficheros de este tamaño. Intente subir un fichero de menor tamaño.', 'uploaded' => 'El servidor no permite la subida de ficheros de este tamaño. Intente subir un fichero de menor tamaño.',
'file_upload_timeout' => 'La carga del archivo ha caducado.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Ha ocurrido un error al subir la imagen', 'image_upload_error' => 'Ha ocurrido un error al subir la imagen',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'No se encontró el adjunto', 'attachment_not_found' => 'No se encontró el adjunto',
'attachment_upload_error' => 'Ha ocurrido un error al subir el archivo adjunto',
// Pages // Pages
'page_draft_autosave_fail' => 'Fallo al guardar borrador. Asegúrese de que tiene conexión a Internet antes de guardar este borrador', 'page_draft_autosave_fail' => 'Fallo al guardar borrador. Asegúrese de que tiene conexión a Internet antes de guardar este borrador',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Seleccionar Imagen', 'image_select' => 'Seleccionar Imagen',
'image_upload' => 'Subir imagen',
'image_intro' => 'Aquí puede seleccionar y administrar las imágenes que se han subido previamente al sistema.',
'image_intro_upload' => 'Suba una nueva imagen arrastrando un archivo de imagen en esta ventana, o usando el botón "Subir imagen" de arriba.',
'image_all' => 'Todo', 'image_all' => 'Todo',
'image_all_title' => 'Ver todas las imágenes', 'image_all_title' => 'Ver todas las imágenes',
'image_book_title' => 'Ver las imágenes subidas a este libro', 'image_book_title' => 'Ver las imágenes subidas a este libro',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => '¿Está seguro que quiere eliminar esta imagen?', 'image_delete_confirm_text' => '¿Está seguro que quiere eliminar esta imagen?',
'image_select_image' => 'Seleccionar Imagen', 'image_select_image' => 'Seleccionar Imagen',
'image_dropzone' => 'Arrastre las imágenes o hacer click aquí para Subir', 'image_dropzone' => 'Arrastre las imágenes o hacer click aquí para Subir',
'image_dropzone_drop' => 'Arrastre las imágenes aquí para subirlas',
'images_deleted' => 'Imágenes borradas', 'images_deleted' => 'Imágenes borradas',
'image_preview' => 'Preview de la imagen', 'image_preview' => 'Preview de la imagen',
'image_upload_success' => 'Imagen subida éxitosamente', 'image_upload_success' => 'Imagen subida éxitosamente',
'image_update_success' => 'Detalles de la imagen actualizados exitosamente', 'image_update_success' => 'Detalles de la imagen actualizados exitosamente',
'image_delete_success' => 'Imagen borrada exitosamente', 'image_delete_success' => 'Imagen borrada exitosamente',
'image_upload_remove' => 'Quitar',
// Code Editor // Code Editor
'code_editor' => 'Editar Código', 'code_editor' => 'Editar Código',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Adjuntos', 'attachments' => 'Adjuntos',
'attachments_explain' => 'Subir archivos o agregar enlaces para mostrar en la página. Estos son visibles en la barra lateral de la página.', 'attachments_explain' => 'Subir archivos o agregar enlaces para mostrar en la página. Estos son visibles en la barra lateral de la página.',
'attachments_explain_instant_save' => 'Los cambios se guardan de manera instantánea.', 'attachments_explain_instant_save' => 'Los cambios se guardan de manera instantánea.',
'attachments_items' => 'Elementos adjuntados',
'attachments_upload' => 'Archivo adjuntado', 'attachments_upload' => 'Archivo adjuntado',
'attachments_link' => 'Adjuntar enlace', 'attachments_link' => 'Adjuntar enlace',
'attachments_upload_drop' => 'También puedes arrastrar y soltar un archivo aquí para subirlo como un archivo adjunto.',
'attachments_set_link' => 'Establecer enlace', 'attachments_set_link' => 'Establecer enlace',
'attachments_delete' => '¿Está seguro que desea eliminar el archivo adjunto?', 'attachments_delete' => '¿Está seguro que desea eliminar el archivo adjunto?',
'attachments_dropzone' => 'Arrastre archivos aquí o presione aquí para adjuntar un archivo', 'attachments_dropzone' => 'Arrastre aquí archivos para subirlos',
'attachments_no_files' => 'No se adjuntó ningún archivo', 'attachments_no_files' => 'No se adjuntó ningún archivo',
'attachments_explain_link' => 'Usted puede agregar un enlace o si lo prefiere puede agregar un archivo. Esto puede ser un enlace a otra página o un enlace a un archivo en la nube.', 'attachments_explain_link' => 'Usted puede agregar un enlace o si lo prefiere puede agregar un archivo. Esto puede ser un enlace a otra página o un enlace a un archivo en la nube.',
'attachments_link_name' => 'Nombre del enlace', 'attachments_link_name' => 'Nombre del enlace',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'El servidor no puede crear la imagen miniatura. Por favor chequee que tiene la extensión GD instalada.', 'cannot_create_thumbs' => 'El servidor no puede crear la imagen miniatura. Por favor chequee que tiene la extensión GD instalada.',
'server_upload_limit' => 'El servidor no permite la subida de ficheros de este tamañ. Por favor intente con un fichero de menor tamañ.', 'server_upload_limit' => 'El servidor no permite la subida de ficheros de este tamañ. Por favor intente con un fichero de menor tamañ.',
'uploaded' => 'El servidor no permite subir archivos de este tamaño. Por favor intente un tamaño menor.', 'uploaded' => 'El servidor no permite subir archivos de este tamaño. Por favor intente un tamaño menor.',
'file_upload_timeout' => 'La carga del archivo ha caducado.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Ha ocurrido un error al subir la imagen', 'image_upload_error' => 'Ha ocurrido un error al subir la imagen',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'No se encuentra el objeto adjunto', 'attachment_not_found' => 'No se encuentra el objeto adjunto',
'attachment_upload_error' => 'Ha ocurrido un error al subir el archivo adjunto',
// Pages // Pages
'page_draft_autosave_fail' => 'Fallo al guardar borrador. Asegurese de que tiene conexión a Internet antes de guardar este borrador', 'page_draft_autosave_fail' => 'Fallo al guardar borrador. Asegurese de que tiene conexión a Internet antes de guardar este borrador',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Pildifaili valik', 'image_select' => 'Pildifaili valik',
'image_upload' => 'Laadi pilt üles',
'image_intro' => 'Siin saad valida ja hallata pilte, mis on eelnevalt süsteemi üles laaditud.',
'image_intro_upload' => 'Laadi uus pilt üles pildifaili sellesse aknasse lohistades või ülal "Laadi pilt üles" nupu abil.',
'image_all' => 'Kõik', 'image_all' => 'Kõik',
'image_all_title' => 'Vaata kõiki pildifaile', 'image_all_title' => 'Vaata kõiki pildifaile',
'image_book_title' => 'Vaata sellesse raamatusse laaditud pildifaile', 'image_book_title' => 'Vaata sellesse raamatusse laaditud pildifaile',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Kas oled kindel, et soovid selle pildifaili kustutada?', 'image_delete_confirm_text' => 'Kas oled kindel, et soovid selle pildifaili kustutada?',
'image_select_image' => 'Vali pildifail', 'image_select_image' => 'Vali pildifail',
'image_dropzone' => 'Üleslaadimiseks lohista pildid või klõpsa siin', 'image_dropzone' => 'Üleslaadimiseks lohista pildid või klõpsa siin',
'image_dropzone_drop' => 'Üleslaadimiseks lohista pildid siia',
'images_deleted' => 'Pildifailid kustutatud', 'images_deleted' => 'Pildifailid kustutatud',
'image_preview' => 'Pildi eelvaade', 'image_preview' => 'Pildi eelvaade',
'image_upload_success' => 'Pildifail üles laaditud', 'image_upload_success' => 'Pildifail üles laaditud',
'image_update_success' => 'Pildifaili andmed muudetud', 'image_update_success' => 'Pildifaili andmed muudetud',
'image_delete_success' => 'Pildifail kustutatud', 'image_delete_success' => 'Pildifail kustutatud',
'image_upload_remove' => 'Eemalda',
// Code Editor // Code Editor
'code_editor' => 'Muuda koodi', 'code_editor' => 'Muuda koodi',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Manused', 'attachments' => 'Manused',
'attachments_explain' => 'Laadi üles faile või lisa linke, mida lehel kuvada. Need on nähtavad külgmenüüs.', 'attachments_explain' => 'Laadi üles faile või lisa linke, mida lehel kuvada. Need on nähtavad külgmenüüs.',
'attachments_explain_instant_save' => 'Muudatused salvestatakse koheselt.', 'attachments_explain_instant_save' => 'Muudatused salvestatakse koheselt.',
'attachments_items' => 'Lisatud objektid',
'attachments_upload' => 'Laadi fail üles', 'attachments_upload' => 'Laadi fail üles',
'attachments_link' => 'Lisa link', 'attachments_link' => 'Lisa link',
'attachments_upload_drop' => 'Saad ka faile siia lohistada, et neid manusena üles laadida.',
'attachments_set_link' => 'Määra link', 'attachments_set_link' => 'Määra link',
'attachments_delete' => 'Kas oled kindel, et soovid selle manuse kustutada?', 'attachments_delete' => 'Kas oled kindel, et soovid selle manuse kustutada?',
'attachments_dropzone' => 'Manuse lisamiseks lohista failid või klõpsa siin', 'attachments_dropzone' => 'Lohista failid üleslaadimiseks siia',
'attachments_no_files' => 'Üleslaaditud faile ei ole', 'attachments_no_files' => 'Üleslaaditud faile ei ole',
'attachments_explain_link' => 'Faili üleslaadimise asemel saad lingi lisada. See võib viidata teisele lehele või failile kuskil pilves.', 'attachments_explain_link' => 'Faili üleslaadimise asemel saad lingi lisada. See võib viidata teisele lehele või failile kuskil pilves.',
'attachments_link_name' => 'Lingi nimi', 'attachments_link_name' => 'Lingi nimi',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Server ei saa piltide eelvaateid tekitada. Veendu, et PHP GD laiendus on paigaldatud.', 'cannot_create_thumbs' => 'Server ei saa piltide eelvaateid tekitada. Veendu, et PHP GD laiendus on paigaldatud.',
'server_upload_limit' => 'Server ei luba nii suurte failide üleslaadimist. Proovi väiksema failiga.', 'server_upload_limit' => 'Server ei luba nii suurte failide üleslaadimist. Proovi väiksema failiga.',
'uploaded' => 'Server ei luba nii suurte failide üleslaadimist. Proovi väiksema failiga.', 'uploaded' => 'Server ei luba nii suurte failide üleslaadimist. Proovi väiksema failiga.',
'file_upload_timeout' => 'Faili üleslaadimine aegus.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Pildi üleslaadimisel tekkis viga', 'image_upload_error' => 'Pildi üleslaadimisel tekkis viga',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Manust ei leitud', 'attachment_not_found' => 'Manust ei leitud',
'attachment_upload_error' => 'Manuse faili üleslaadimisel tekkis viga',
// Pages // Pages
'page_draft_autosave_fail' => 'Mustandi salvestamine ebaõnnestus. Kontrolli oma internetiühendust', 'page_draft_autosave_fail' => 'Mustandi salvestamine ebaõnnestus. Kontrolli oma internetiühendust',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Irudia aukeratu', 'image_select' => 'Irudia aukeratu',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Guztiak', 'image_all' => 'Guztiak',
'image_all_title' => 'Irudi guztiak ikusi', 'image_all_title' => 'Irudi guztiak ikusi',
'image_book_title' => 'Liburu honetan igotako irudiak ikusi', 'image_book_title' => 'Liburu honetan igotako irudiak ikusi',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Ziur irudi hau ezabatu nahi duzula?', 'image_delete_confirm_text' => 'Ziur irudi hau ezabatu nahi duzula?',
'image_select_image' => 'Irudia aukeratu', 'image_select_image' => 'Irudia aukeratu',
'image_dropzone' => 'Irudiak bota edo klikatu hemen igotzeko', 'image_dropzone' => 'Irudiak bota edo klikatu hemen igotzeko',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Ezabatutako irudiak', 'images_deleted' => 'Ezabatutako irudiak',
'image_preview' => 'Irudiaren aurrebista', 'image_preview' => 'Irudiaren aurrebista',
'image_upload_success' => 'Irudia zuzen eguneratu da', 'image_upload_success' => 'Irudia zuzen eguneratu da',
'image_update_success' => 'Irudiaren xehetasunak egioki eguneratu dira', 'image_update_success' => 'Irudiaren xehetasunak egioki eguneratu dira',
'image_delete_success' => 'Irudia ondo ezabatu da', 'image_delete_success' => 'Irudia ondo ezabatu da',
'image_upload_remove' => 'Ezabatu',
// Code Editor // Code Editor
'code_editor' => 'Kodea editatu', 'code_editor' => 'Kodea editatu',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Eranskinak', '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' => 'Atxikiak',
'attachments_upload' => 'Kargatu artxiboak', 'attachments_upload' => 'Kargatu artxiboak',
'attachments_link' => 'Attach Link', 'attachments_link' => 'Attach Link',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'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 here to upload',
'attachments_no_files' => 'Ez da igo fitxategirik', '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' => 'Loturaren izena', 'attachments_link_name' => 'Loturaren izena',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.', 'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.',
'server_upload_limit' => 'The server does not allow uploads of this size. Please try a smaller file size.', 'server_upload_limit' => 'The server does not allow uploads of this size. Please try a smaller file size.',
'uploaded' => 'The server does not allow uploads of this size. Please try a smaller file size.', 'uploaded' => 'The server does not allow uploads of this size. Please try a smaller file size.',
'file_upload_timeout' => 'The file upload has timed out.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Errorea gertatu da irudia igotzerakoan', 'image_upload_error' => 'Errorea gertatu da irudia igotzerakoan',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Atxikia ez da aurkitu', 'attachment_not_found' => 'Atxikia ez da aurkitu',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Failed to save draft. Ensure you have internet connection before saving this page', 'page_draft_autosave_fail' => 'Failed to save draft. Ensure you have internet connection before saving this page',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'انتخاب تصویر', 'image_select' => 'انتخاب تصویر',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'همه', 'image_all' => 'همه',
'image_all_title' => 'نمایش تمام تصاویر', 'image_all_title' => 'نمایش تمام تصاویر',
'image_book_title' => 'تصاویر بارگذاری شده در این کتاب را مشاهده کنید', 'image_book_title' => 'تصاویر بارگذاری شده در این کتاب را مشاهده کنید',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'آیا مطمئن هستید که میخواهید این عکس را پاک کنید؟', 'image_delete_confirm_text' => 'آیا مطمئن هستید که میخواهید این عکس را پاک کنید؟',
'image_select_image' => 'انتخاب تصویر', 'image_select_image' => 'انتخاب تصویر',
'image_dropzone' => 'تصاویر را رها کنید یا برای بارگذاری اینجا را کلیک کنید', 'image_dropzone' => 'تصاویر را رها کنید یا برای بارگذاری اینجا را کلیک کنید',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'تصاویر حذف شده', 'images_deleted' => 'تصاویر حذف شده',
'image_preview' => 'پیش نمایش تصویر', 'image_preview' => 'پیش نمایش تصویر',
'image_upload_success' => 'تصویر با موفقیت بارگذاری شد', 'image_upload_success' => 'تصویر با موفقیت بارگذاری شد',
'image_update_success' => 'جزئیات تصویر با موفقیت به روز شد', 'image_update_success' => 'جزئیات تصویر با موفقیت به روز شد',
'image_delete_success' => 'تصویر با موفقیت حذف شد', 'image_delete_success' => 'تصویر با موفقیت حذف شد',
'image_upload_remove' => 'حذف',
// Code Editor // Code Editor
'code_editor' => 'ویرایش کد', 'code_editor' => 'ویرایش کد',

View File

@ -23,7 +23,7 @@ return [
'meta_updated' => 'به روزرسانی شده :timeLength', 'meta_updated' => 'به روزرسانی شده :timeLength',
'meta_updated_name' => 'به روزرسانی شده :timeLength توسط :user', 'meta_updated_name' => 'به روزرسانی شده :timeLength توسط :user',
'meta_owned_name' => 'متعلق به :user', 'meta_owned_name' => 'متعلق به :user',
'meta_reference_page_count' => 'Referenced on :count page|Referenced on :count pages', 'meta_reference_page_count' => 'در 1 صفحه به آن ارجاع داده شده|در :count صفحه به آن ارجاع داده شده',
'entity_select' => 'انتخاب موجودیت', 'entity_select' => 'انتخاب موجودیت',
'entity_select_lack_permission' => 'شما مجوزهای لازم برای انتخاب این مورد را ندارید', 'entity_select_lack_permission' => 'شما مجوزهای لازم برای انتخاب این مورد را ندارید',
'images' => 'عکس‌ها', 'images' => 'عکس‌ها',
@ -49,7 +49,7 @@ return [
'permissions_owner' => 'مالک', 'permissions_owner' => 'مالک',
'permissions_role_everyone_else' => 'سایر کاربران', 'permissions_role_everyone_else' => 'سایر کاربران',
'permissions_role_everyone_else_desc' => 'مجوزها را برای نقش‌هایی تنظیم کنید که به طور خاص لغو نشده‌اند.', 'permissions_role_everyone_else_desc' => 'مجوزها را برای نقش‌هایی تنظیم کنید که به طور خاص لغو نشده‌اند.',
'permissions_role_override' => 'لغو مجوز برای نقش', 'permissions_role_override' => 'تنظیم مجدد مجوز برای نقش',
'permissions_inherit_defaults' => 'ارث بردن از مجوزهای پیش‌فرض', 'permissions_inherit_defaults' => 'ارث بردن از مجوزهای پیش‌فرض',
// Search // Search
@ -236,8 +236,8 @@ return [
'pages_md_insert_image' => 'درج تصویر', 'pages_md_insert_image' => 'درج تصویر',
'pages_md_insert_link' => 'پیوند نهاد را درج کنید', 'pages_md_insert_link' => 'پیوند نهاد را درج کنید',
'pages_md_insert_drawing' => 'درج طرح', 'pages_md_insert_drawing' => 'درج طرح',
'pages_md_show_preview' => 'Show preview', 'pages_md_show_preview' => 'دیدن پیش نمایش',
'pages_md_sync_scroll' => 'Sync preview scroll', 'pages_md_sync_scroll' => 'هماهنگ سازی اسکرول پیش نمایش',
'pages_not_in_chapter' => 'صفحه در یک فصل نیست', 'pages_not_in_chapter' => 'صفحه در یک فصل نیست',
'pages_move' => 'انتقال صفحه', 'pages_move' => 'انتقال صفحه',
'pages_move_success' => 'صفحه به ":parentName" منتقل شد', 'pages_move_success' => 'صفحه به ":parentName" منتقل شد',
@ -292,7 +292,7 @@ return [
'shelf_tags' => 'برچسب های قفسه', 'shelf_tags' => 'برچسب های قفسه',
'tag' => 'برچسب', 'tag' => 'برچسب',
'tags' => 'برچسب ها', 'tags' => 'برچسب ها',
'tags_index_desc' => 'Tags can be applied to content within the system to apply a flexible form of categorization. Tags can have both a key and value, with the value being optional. Once applied, content can then be queried using the tag name and value.', 'tags_index_desc' => 'تگ ها را میتوان به محتوای داخل سیستم اعمال کرد تا فرم هماهنگی از طبقه‌بندی ایجاد شود. تگ ها می توانند شامل یک کلید و یک مقدار باشند، که مقدار آن انتخابی یا قابل خذف است. بعد از ایجاد تگ، محتوا را می توان توسط کلید یا مقدار هر تگ جستجو نمود.',
'tag_name' => 'نام برچسب', 'tag_name' => 'نام برچسب',
'tag_value' => 'مقدار برچسب (اختیاری)', 'tag_value' => 'مقدار برچسب (اختیاری)',
'tags_explain' => "برای دسته بندی بهتر مطالب خود چند برچسب اضافه کنید.\nمی توانید برای سازماندهی عمیق‌تر، یک مقدار به یک برچسب اختصاص دهید.", 'tags_explain' => "برای دسته بندی بهتر مطالب خود چند برچسب اضافه کنید.\nمی توانید برای سازماندهی عمیق‌تر، یک مقدار به یک برچسب اختصاص دهید.",
@ -311,12 +311,12 @@ return [
'attachments' => 'پیوست ها', 'attachments' => 'پیوست ها',
'attachments_explain' => 'چند فایل را آپلود کنید یا چند پیوند را برای نمایش در صفحه خود ضمیمه کنید. اینها در نوار کناری صفحه قابل مشاهده هستند.', 'attachments_explain' => 'چند فایل را آپلود کنید یا چند پیوند را برای نمایش در صفحه خود ضمیمه کنید. اینها در نوار کناری صفحه قابل مشاهده هستند.',
'attachments_explain_instant_save' => 'تغییرات در اینجا فورا ذخیره می شوند.', 'attachments_explain_instant_save' => 'تغییرات در اینجا فورا ذخیره می شوند.',
'attachments_items' => 'موارد پیوست شده',
'attachments_upload' => 'آپلود فایل', 'attachments_upload' => 'آپلود فایل',
'attachments_link' => 'پیوند را ضمیمه کنید', 'attachments_link' => 'پیوند را ضمیمه کنید',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'پیوند را تنظیم کنید', 'attachments_set_link' => 'پیوند را تنظیم کنید',
'attachments_delete' => 'آیا مطمئن هستید که می خواهید این پیوست را حذف کنید؟', 'attachments_delete' => 'آیا مطمئن هستید که می خواهید این پیوست را حذف کنید؟',
'attachments_dropzone' => 'فایل ها را رها کنید یا برای پیوست کردن یک فایل اینجا را کلیک کنید', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'هیچ فایلی آپلود نشده است', 'attachments_no_files' => 'هیچ فایلی آپلود نشده است',
'attachments_explain_link' => 'اگر ترجیح می دهید فایلی را آپلود نکنید، می توانید پیوندی را پیوست کنید. این می تواند پیوندی به صفحه دیگر یا پیوندی به فایلی در فضای ابری باشد.', 'attachments_explain_link' => 'اگر ترجیح می دهید فایلی را آپلود نکنید، می توانید پیوندی را پیوست کنید. این می تواند پیوندی به صفحه دیگر یا پیوندی به فایلی در فضای ابری باشد.',
'attachments_link_name' => 'نام پیوند', 'attachments_link_name' => 'نام پیوند',
@ -395,6 +395,6 @@ return [
// References // References
'references' => 'مراجع', 'references' => 'مراجع',
'references_none' => 'There are no tracked references to this item.', 'references_none' => 'هیچ رفرنسی برای این قلم یافت نشد.',
'references_to_desc' => 'در زیر تمام صفحات شناخته شده در سیستم که به این مورد پیوند دارند، نشان داده شده است.', 'references_to_desc' => 'در زیر تمام صفحات شناخته شده در سیستم که به این مورد پیوند دارند، نشان داده شده است.',
]; ];

View File

@ -45,15 +45,15 @@ return [
'cannot_create_thumbs' => 'سرور نمی تواند تصاویر کوچک ایجاد کند. لطفاً بررسی کنید که پسوند GD PHP را نصب کرده اید.', 'cannot_create_thumbs' => 'سرور نمی تواند تصاویر کوچک ایجاد کند. لطفاً بررسی کنید که پسوند GD PHP را نصب کرده اید.',
'server_upload_limit' => 'سرور اجازه آپلود در این اندازه را نمی دهد. لطفا اندازه فایل کوچکتر را امتحان کنید.', 'server_upload_limit' => 'سرور اجازه آپلود در این اندازه را نمی دهد. لطفا اندازه فایل کوچکتر را امتحان کنید.',
'uploaded' => 'سرور اجازه آپلود در این اندازه را نمی دهد. لطفا اندازه فایل کوچکتر را امتحان کنید.', 'uploaded' => 'سرور اجازه آپلود در این اندازه را نمی دهد. لطفا اندازه فایل کوچکتر را امتحان کنید.',
'file_upload_timeout' => 'زمان بارگذاری فایل به پایان رسیده است.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'هنگام آپلود تصویر خطایی روی داد', 'image_upload_error' => 'هنگام آپلود تصویر خطایی روی داد',
'image_upload_type_error' => 'نوع تصویر در حال آپلود نامعتبر است', 'image_upload_type_error' => 'نوع تصویر در حال آپلود نامعتبر است',
'drawing_data_not_found' => 'Drawing data could not be loaded. The drawing file might no longer exist or you may not have permission to access it.', 'drawing_data_not_found' => 'داده های طرح قابل بارگذاری نیستند. ممکن است فایل طرح دیگر وجود نداشته باشد یا شما به آن دسترسی نداشته باشید.',
// Attachments // Attachments
'attachment_not_found' => 'پیوست یافت نشد', 'attachment_not_found' => 'پیوست یافت نشد',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'پیش نویس ذخیره نشد. قبل از ذخیره این صفحه مطمئن شوید که به اینترنت متصل هستید', 'page_draft_autosave_fail' => 'پیش نویس ذخیره نشد. قبل از ذخیره این صفحه مطمئن شوید که به اینترنت متصل هستید',

View File

@ -50,11 +50,11 @@ return [
// Color settings // Color settings
'color_scheme' => 'ترکیب رنگی برنامه', 'color_scheme' => 'ترکیب رنگی برنامه',
'color_scheme_desc' => 'Set the colors to use in the application user interface. Colors can be configured separately for dark and light modes to best fit the theme and ensure legibility.', 'color_scheme_desc' => 'رنگهایی که در رابط کاربری نرم‌افزار استفاده می شوند را انتخاب کنید. رنگها را میتوان برای حالت روشن یا تیره به صورت جداگانه تنظیم کرد تا هم با تم مورد استفاده سازگار بوده و هم خوانا باشند.',
'ui_colors_desc' => 'Set the application primary color and default link color. The primary color is mainly used for the header banner, buttons and interface decorations. The default link color is used for text-based links and actions, both within written content and in the application interface.', 'ui_colors_desc' => 'رنگ اصلی نرم‌افزار و رنگ پیش فرض پیوندها را انتخاب کنید. رنگ اصلی بیشتر برای بنر، کلیدها و عناصر تزیینی رابط کاربری استفاده می شوند. رنگ پیش فرض پیوند برای پیوندهای متنی و اکشن ها بکار میرود، هم در محتوای متنی و هم در رابط کاربری.',
'app_color' => 'Primary Color', 'app_color' => 'رنگ اصلی',
'link_color' => 'Default Link Color', 'link_color' => 'رنگ پیش فرض پیوند',
'content_colors_desc' => 'Set colors for all elements in the page organisation hierarchy. Choosing colors with a similar brightness to the default colors is recommended for readability.', 'content_colors_desc' => 'رنگهای عناصر سلسه مراتب صفحه را انتخاب کنید. پیشنهاد می شود رنگهایی انتخاب گردند که با رنگ پیش فرض دارای روشنی مشابه باشند، تا به خوانایی کمک شود.',
'bookshelf_color' => 'رنگ قفسه', 'bookshelf_color' => 'رنگ قفسه',
'book_color' => 'رنگ کتاب', 'book_color' => 'رنگ کتاب',
'chapter_color' => 'رنگ فصل', 'chapter_color' => 'رنگ فصل',
@ -93,10 +93,10 @@ return [
'maint_send_test_email_mail_text' => 'تبریک می گویم! با دریافت این اعلان ایمیل، به نظر می رسد تنظیمات ایمیل شما به درستی پیکربندی شده است.', 'maint_send_test_email_mail_text' => 'تبریک می گویم! با دریافت این اعلان ایمیل، به نظر می رسد تنظیمات ایمیل شما به درستی پیکربندی شده است.',
'maint_recycle_bin_desc' => 'قفسه‌ها، کتاب‌ها، فصل‌ها و صفحات حذف‌شده به سطل بازیافت فرستاده می‌شوند تا بتوان آن‌ها را بازیابی کرد یا برای همیشه حذف کرد. بسته به پیکربندی سیستم، اقلام قدیمی در سطل بازیافت ممکن است پس از مدتی به طور خودکار حذف شوند.', 'maint_recycle_bin_desc' => 'قفسه‌ها، کتاب‌ها، فصل‌ها و صفحات حذف‌شده به سطل بازیافت فرستاده می‌شوند تا بتوان آن‌ها را بازیابی کرد یا برای همیشه حذف کرد. بسته به پیکربندی سیستم، اقلام قدیمی در سطل بازیافت ممکن است پس از مدتی به طور خودکار حذف شوند.',
'maint_recycle_bin_open' => 'سطل بازیافت را باز کنید', 'maint_recycle_bin_open' => 'سطل بازیافت را باز کنید',
'maint_regen_references' => 'Regenerate References', 'maint_regen_references' => 'تولید مجدد رفرنس ها',
'maint_regen_references_desc' => 'This action will rebuild the cross-item reference index within the database. This is usually handled automatically but this action can be useful to index old content or content added via unofficial methods.', 'maint_regen_references_desc' => 'این عمل اندیس رفرنس های میان اقلامی موجود در دیتابیس را بازسازی خواهد کرد. چنین کاری معمولا به صورت خودکار انجام میشود، ولی این عمل برای اندیس گذاری محتویات قدیمی یا محتویایی که از طرق غیرمعمول اضافه شده اند مفید است.',
'maint_regen_references_success' => 'Reference index has been regenerated!', 'maint_regen_references_success' => 'اندیس رفرنس ها بازسازی شدند!',
'maint_timeout_command_note' => 'Note: This action can take time to run, which can lead to timeout issues in some web environments. As an alternative, this action be performed using a terminal command.', 'maint_timeout_command_note' => 'توجه: این عملیات زمان بر خواهد بود، که ممکن در برخی محیطهای وب باعث از دسترس خارج شدن شوند. به عنوان گزینه جایگزین، این عمل را میتوان با استفاده از یک دستور ترمینال انجام داد.',
// Recycle Bin // Recycle Bin
'recycle_bin' => 'سطل زباله', 'recycle_bin' => 'سطل زباله',
@ -141,7 +141,7 @@ return [
'roles_x_users_assigned' => ':count کاربر اختصاص داده شده|:count کاربر اختصاص داده شده', 'roles_x_users_assigned' => ':count کاربر اختصاص داده شده|:count کاربر اختصاص داده شده',
'roles_x_permissions_provided' => ':count مجوز|:count مجوز', 'roles_x_permissions_provided' => ':count مجوز|:count مجوز',
'roles_assigned_users' => 'کاربران اختصاص داده شده', 'roles_assigned_users' => 'کاربران اختصاص داده شده',
'roles_permissions_provided' => 'Provided Permissions', 'roles_permissions_provided' => 'دسترسی های موجود',
'role_create' => 'نقش جدید ایجاد کنید', 'role_create' => 'نقش جدید ایجاد کنید',
'role_delete' => 'حذف نقش', 'role_delete' => 'حذف نقش',
'role_delete_confirm' => 'با این کار نقش با نام \':roleName\' حذف می شود.', 'role_delete_confirm' => 'با این کار نقش با نام \':roleName\' حذف می شود.',
@ -168,7 +168,7 @@ return [
'roles_system_warning' => 'توجه داشته باشید که دسترسی به هر یک از سه مجوز فوق می‌تواند به کاربر اجازه دهد تا امتیازات خود یا امتیازات دیگران را در سیستم تغییر دهد. فقط نقش هایی را با این مجوزها به کاربران مورد اعتماد اختصاص دهید.', 'roles_system_warning' => 'توجه داشته باشید که دسترسی به هر یک از سه مجوز فوق می‌تواند به کاربر اجازه دهد تا امتیازات خود یا امتیازات دیگران را در سیستم تغییر دهد. فقط نقش هایی را با این مجوزها به کاربران مورد اعتماد اختصاص دهید.',
'role_asset_desc' => 'این مجوزها دسترسی پیش‌فرض به دارایی‌های درون سیستم را کنترل می‌کنند. مجوزهای مربوط به کتاب‌ها، فصل‌ها و صفحات این مجوزها را لغو می‌کنند.', 'role_asset_desc' => 'این مجوزها دسترسی پیش‌فرض به دارایی‌های درون سیستم را کنترل می‌کنند. مجوزهای مربوط به کتاب‌ها، فصل‌ها و صفحات این مجوزها را لغو می‌کنند.',
'role_asset_admins' => 'به ادمین‌ها به‌طور خودکار به همه محتوا دسترسی داده می‌شود، اما این گزینه‌ها ممکن است گزینه‌های UI را نشان داده یا پنهان کنند.', 'role_asset_admins' => 'به ادمین‌ها به‌طور خودکار به همه محتوا دسترسی داده می‌شود، اما این گزینه‌ها ممکن است گزینه‌های UI را نشان داده یا پنهان کنند.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.', 'role_asset_image_view_note' => 'این مربوط به مرئی بودن در بخش مدیر تصاویر است. دسترسی عملی به تصاویر آپلود شده بستگی به گزینه ذخیره‌سازی تصویر سیستم دارد.',
'role_all' => 'همه', 'role_all' => 'همه',
'role_own' => 'صاحب', 'role_own' => 'صاحب',
'role_controlled_by_asset' => 'توسط دارایی که در آن آپلود می شود کنترل می شود', 'role_controlled_by_asset' => 'توسط دارایی که در آن آپلود می شود کنترل می شود',
@ -178,7 +178,7 @@ return [
// Users // Users
'users' => 'کاربران', 'users' => 'کاربران',
'users_index_desc' => 'Create & manage individual user accounts within the system. User accounts are used for login and attribution of content & activity. Access permissions are primarily role-based but user content ownership, among other factors, may also affect permissions & access.', 'users_index_desc' => 'ساخت و مدیریت حساب های کاربری درون سیستم. حساب های کاربری برای ورود به سیستم و تخصیص محتوا و فعالیت ها به کار می روند. اجازه های دسترسی عموما بر مبنای نقش کاربر هستند، ولی مالکیت محتوای کاربر (در کنار سایر عوامل) روی اجازه و دسترسی تاثیر گذارند.',
'user_profile' => 'پرونده کاربر', 'user_profile' => 'پرونده کاربر',
'users_add_new' => 'افزودن کاربر جدید', 'users_add_new' => 'افزودن کاربر جدید',
'users_search' => 'جستجوی کاربران', 'users_search' => 'جستجوی کاربران',
@ -248,7 +248,7 @@ return [
// Webhooks // Webhooks
'webhooks' => 'وب‌هوک‌ها', 'webhooks' => 'وب‌هوک‌ها',
'webhooks_index_desc' => 'Webhooks are a way to send data to external URLs when certain actions and events occur within the system which allows event-based integration with external platforms such as messaging or notification systems.', 'webhooks_index_desc' => 'وب هوک ها روشی برای ارسال داده به آدرس های اینترنتی خارج از سیستم، بر اساس اتفاقات خاصی درون سیستم هستند که امکان یکپارچه سازی مبتنی بر وقایع را با سایر سیستم ها، مثل سیستم پیام رسانی یا اطلاع رسانی، فراهم می کنند.',
'webhooks_x_trigger_events' => ':count trigger event|:count trigger events', 'webhooks_x_trigger_events' => ':count trigger event|:count trigger events',
'webhooks_create' => 'ایجاد وب هوک جدید', 'webhooks_create' => 'ایجاد وب هوک جدید',
'webhooks_none_created' => 'هنوز هیچ وب هوکی ایجاد نشده است.', 'webhooks_none_created' => 'هنوز هیچ وب هوکی ایجاد نشده است.',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Sélectionner une image', 'image_select' => 'Sélectionner une image',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Toutes', 'image_all' => 'Toutes',
'image_all_title' => 'Voir toutes les images', 'image_all_title' => 'Voir toutes les images',
'image_book_title' => 'Voir les images ajoutées à ce livre', 'image_book_title' => 'Voir les images ajoutées à ce livre',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Êtes-vous sûr de vouloir supprimer cette image ?', 'image_delete_confirm_text' => 'Êtes-vous sûr de vouloir supprimer cette image ?',
'image_select_image' => 'Sélectionner l\'image', 'image_select_image' => 'Sélectionner l\'image',
'image_dropzone' => 'Glissez les images ici ou cliquez pour les ajouter', 'image_dropzone' => 'Glissez les images ici ou cliquez pour les ajouter',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Images supprimées', 'images_deleted' => 'Images supprimées',
'image_preview' => 'Prévisualiser l\'image', 'image_preview' => 'Prévisualiser l\'image',
'image_upload_success' => 'Image ajoutée avec succès', 'image_upload_success' => 'Image ajoutée avec succès',
'image_update_success' => 'Détails de l\'image mis à jour', 'image_update_success' => 'Détails de l\'image mis à jour',
'image_delete_success' => 'Image supprimée avec succès', 'image_delete_success' => 'Image supprimée avec succès',
'image_upload_remove' => 'Supprimer',
// Code Editor // Code Editor
'code_editor' => 'Éditer le code', 'code_editor' => 'Éditer le code',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Fichiers joints', 'attachments' => 'Fichiers joints',
'attachments_explain' => 'Ajouter des fichiers ou des liens pour les afficher sur votre page. Ils seront affichés dans la barre latérale', 'attachments_explain' => 'Ajouter des fichiers ou des liens pour les afficher sur votre page. Ils seront affichés dans la barre latérale',
'attachments_explain_instant_save' => 'Ces changements sont enregistrés immédiatement.', 'attachments_explain_instant_save' => 'Ces changements sont enregistrés immédiatement.',
'attachments_items' => 'Fichiers joints',
'attachments_upload' => 'Uploader un fichier', 'attachments_upload' => 'Uploader un fichier',
'attachments_link' => 'Attacher un lien', 'attachments_link' => 'Attacher un lien',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Définir un lien', 'attachments_set_link' => 'Définir un lien',
'attachments_delete' => 'Êtes-vous sûr de vouloir supprimer la pièce jointe ?', 'attachments_delete' => 'Êtes-vous sûr de vouloir supprimer la pièce jointe ?',
'attachments_dropzone' => 'Glissez des fichiers ou cliquez ici pour attacher des fichiers', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Aucun fichier ajouté', 'attachments_no_files' => 'Aucun fichier ajouté',
'attachments_explain_link' => 'Vous pouvez ajouter un lien si vous ne souhaitez pas uploader un fichier.', 'attachments_explain_link' => 'Vous pouvez ajouter un lien si vous ne souhaitez pas uploader un fichier.',
'attachments_link_name' => 'Nom du lien', 'attachments_link_name' => 'Nom du lien',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Le serveur ne peut pas créer de miniature, vérifier que l\'extension PHP GD est installée.', 'cannot_create_thumbs' => 'Le serveur ne peut pas créer de miniature, vérifier que l\'extension PHP GD est installée.',
'server_upload_limit' => 'La taille du fichier est trop grande.', 'server_upload_limit' => 'La taille du fichier est trop grande.',
'uploaded' => 'Le serveur n\'autorise pas l\'envoi d\'un fichier de cette taille. Veuillez essayer avec une taille de fichier réduite.', 'uploaded' => 'Le serveur n\'autorise pas l\'envoi d\'un fichier de cette taille. Veuillez essayer avec une taille de fichier réduite.',
'file_upload_timeout' => 'Le téléchargement du fichier a expiré.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Une erreur est survenue pendant l\'envoi de l\'image', 'image_upload_error' => 'Une erreur est survenue pendant l\'envoi de l\'image',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Fichier joint non trouvé', 'attachment_not_found' => 'Fichier joint non trouvé',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Le brouillon n\'a pas pu être enregistré. Vérifiez votre connexion internet', 'page_draft_autosave_fail' => 'Le brouillon n\'a pas pu être enregistré. Vérifiez votre connexion internet',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'בחירת תמונה', 'image_select' => 'בחירת תמונה',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'הכל', 'image_all' => 'הכל',
'image_all_title' => 'הצג את כל התמונות', 'image_all_title' => 'הצג את כל התמונות',
'image_book_title' => 'הצג תמונות שהועלו לספר זה', 'image_book_title' => 'הצג תמונות שהועלו לספר זה',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'האם את/ה בטוח/ה שברצונך למחוק את התמונה הזו?', 'image_delete_confirm_text' => 'האם את/ה בטוח/ה שברצונך למחוק את התמונה הזו?',
'image_select_image' => 'בחר תמונה', 'image_select_image' => 'בחר תמונה',
'image_dropzone' => 'גרור תמונות או לחץ כאן להעלאה', 'image_dropzone' => 'גרור תמונות או לחץ כאן להעלאה',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'התמונות נמחקו', 'images_deleted' => 'התמונות נמחקו',
'image_preview' => 'תצוגה מקדימה', 'image_preview' => 'תצוגה מקדימה',
'image_upload_success' => 'התמונה עלתה בהצלחה', 'image_upload_success' => 'התמונה עלתה בהצלחה',
'image_update_success' => 'פרטי התמונה עודכנו בהצלחה', 'image_update_success' => 'פרטי התמונה עודכנו בהצלחה',
'image_delete_success' => 'התמונה נמחקה בהצלחה', 'image_delete_success' => 'התמונה נמחקה בהצלחה',
'image_upload_remove' => 'מחק',
// Code Editor // Code Editor
'code_editor' => 'ערוך קוד', 'code_editor' => 'ערוך קוד',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'קבצים מצורפים', 'attachments' => 'קבצים מצורפים',
'attachments_explain' => 'צרף קבצים או קישורים על מנת להציגם בדף שלך. צירופים אלו יהיו זמינים בתפריט הצדדי של הדף', 'attachments_explain' => 'צרף קבצים או קישורים על מנת להציגם בדף שלך. צירופים אלו יהיו זמינים בתפריט הצדדי של הדף',
'attachments_explain_instant_save' => 'שינויים נשמרים באופן מיידי', 'attachments_explain_instant_save' => 'שינויים נשמרים באופן מיידי',
'attachments_items' => 'פריטים שצורפו',
'attachments_upload' => 'העלה קובץ', 'attachments_upload' => 'העלה קובץ',
'attachments_link' => 'צרף קישור', 'attachments_link' => 'צרף קישור',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'הגדר קישור', 'attachments_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' => 'גרור לכאן קבצים או לחץ על מנת לצרף קבצים', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'לא הועלו קבצים', 'attachments_no_files' => 'לא הועלו קבצים',
'attachments_explain_link' => 'ניתן לצרף קישור במקום העלאת קובץ, קישור זה יכול להוביל לדף אחר או לכל קובץ באינטרנט', 'attachments_explain_link' => 'ניתן לצרף קישור במקום העלאת קובץ, קישור זה יכול להוביל לדף אחר או לכל קובץ באינטרנט',
'attachments_link_name' => 'שם הקישור', 'attachments_link_name' => 'שם הקישור',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.', 'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.',
'server_upload_limit' => 'השרת אינו מרשה העלאת קבצים במשקל זה. אנא נסה להעלות קובץ קטן יותר.', 'server_upload_limit' => 'השרת אינו מרשה העלאת קבצים במשקל זה. אנא נסה להעלות קובץ קטן יותר.',
'uploaded' => 'השרת אינו מרשה העלאת קבצים במשקל זה. אנא נסה להעלות קובץ קטן יותר.', 'uploaded' => 'השרת אינו מרשה העלאת קבצים במשקל זה. אנא נסה להעלות קובץ קטן יותר.',
'file_upload_timeout' => 'The file upload has timed out.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'התרחשה שגיאה במהלך העלאת התמונה', 'image_upload_error' => 'התרחשה שגיאה במהלך העלאת התמונה',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'קובץ מצורף לא נמצא', 'attachment_not_found' => 'קובץ מצורף לא נמצא',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'שגיאה בשמירת הטיוטה. אנא ודא כי חיבור האינטרנט תקין לפני שמירת דף זה.', 'page_draft_autosave_fail' => 'שגיאה בשמירת הטיוטה. אנא ודא כי חיבור האינטרנט תקין לפני שמירת דף זה.',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Odabir slike', 'image_select' => 'Odabir slike',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Sve', 'image_all' => 'Sve',
'image_all_title' => 'Vidi sve slike', 'image_all_title' => 'Vidi sve slike',
'image_book_title' => 'Vidi slike dodane ovoj knjizi', 'image_book_title' => 'Vidi slike dodane ovoj knjizi',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Jeste li sigurni da želite obrisati sliku?', 'image_delete_confirm_text' => 'Jeste li sigurni da želite obrisati sliku?',
'image_select_image' => 'Odaberi sliku', 'image_select_image' => 'Odaberi sliku',
'image_dropzone' => 'Prebacite sliku ili kliknite ovdje za prijenos', 'image_dropzone' => 'Prebacite sliku ili kliknite ovdje za prijenos',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Obrisane slike', 'images_deleted' => 'Obrisane slike',
'image_preview' => 'Pregled slike', 'image_preview' => 'Pregled slike',
'image_upload_success' => 'Slika je uspješno dodana', 'image_upload_success' => 'Slika je uspješno dodana',
'image_update_success' => 'Detalji slike su uspješno ažurirani', 'image_update_success' => 'Detalji slike su uspješno ažurirani',
'image_delete_success' => 'Slika je obrisana', 'image_delete_success' => 'Slika je obrisana',
'image_upload_remove' => 'Ukloni',
// Code Editor // Code Editor
'code_editor' => 'Uredi kod', 'code_editor' => 'Uredi kod',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Prilozi', 'attachments' => 'Prilozi',
'attachments_explain' => 'Dodajte datoteke ili poveznice za prikaz na vašoj stranici. Vidljive su na rubnoj oznaci stranice.', 'attachments_explain' => 'Dodajte datoteke ili poveznice za prikaz na vašoj stranici. Vidljive su na rubnoj oznaci stranice.',
'attachments_explain_instant_save' => 'Promjene se automatski spremaju.', 'attachments_explain_instant_save' => 'Promjene se automatski spremaju.',
'attachments_items' => 'Dodane stavke',
'attachments_upload' => 'Dodaj datoteku', 'attachments_upload' => 'Dodaj datoteku',
'attachments_link' => 'Dodaj poveznicu', 'attachments_link' => 'Dodaj poveznicu',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Postavi poveznicu', 'attachments_set_link' => 'Postavi poveznicu',
'attachments_delete' => 'Jeste li sigurni da želite izbrisati ovu stavku?', 'attachments_delete' => 'Jeste li sigurni da želite izbrisati ovu stavku?',
'attachments_dropzone' => 'Dodajte datoteke ili kliknite ovdje', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Nijedna datoteka nije prenesena', 'attachments_no_files' => 'Nijedna datoteka nije prenesena',
'attachments_explain_link' => 'Možete dodati poveznicu ako ne želite prenijeti datoteku. Poveznica može voditi na drugu stranicu ili datoteku.', 'attachments_explain_link' => 'Možete dodati poveznicu ako ne želite prenijeti datoteku. Poveznica može voditi na drugu stranicu ili datoteku.',
'attachments_link_name' => 'Ime poveznice', 'attachments_link_name' => 'Ime poveznice',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'Provjerite imate li instaliranu GD PHP ekstenziju.', 'cannot_create_thumbs' => 'Provjerite imate li instaliranu GD PHP ekstenziju.',
'server_upload_limit' => 'Prevelika količina za server. Pokušajte prenijeti manju veličinu.', 'server_upload_limit' => 'Prevelika količina za server. Pokušajte prenijeti manju veličinu.',
'uploaded' => 'Prevelika količina za server. Pokušajte prenijeti manju veličinu.', 'uploaded' => 'Prevelika količina za server. Pokušajte prenijeti manju veličinu.',
'file_upload_timeout' => 'Isteklo vrijeme za prijenos datoteke.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Problem s prenosom slike', 'image_upload_error' => 'Problem s prenosom slike',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Prilozi nisu pronađeni', 'attachment_not_found' => 'Prilozi nisu pronađeni',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Problem sa spremanjem nacrta. Osigurajte stabilnu internetsku vezu.', 'page_draft_autosave_fail' => 'Problem sa spremanjem nacrta. Osigurajte stabilnu internetsku vezu.',

View File

@ -6,6 +6,9 @@ return [
// Image Manager // Image Manager
'image_select' => 'Kép kiválasztása', 'image_select' => 'Kép kiválasztása',
'image_upload' => 'Upload Image',
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
'image_all' => 'Összes', 'image_all' => 'Összes',
'image_all_title' => 'Összes kép megtekintése', 'image_all_title' => 'Összes kép megtekintése',
'image_book_title' => 'A könyv feltöltött képek megtekintése', 'image_book_title' => 'A könyv feltöltött képek megtekintése',
@ -18,12 +21,12 @@ return [
'image_delete_confirm_text' => 'Biztosan törölhető ez a kép?', 'image_delete_confirm_text' => 'Biztosan törölhető ez a kép?',
'image_select_image' => 'Kép kiválasztása', 'image_select_image' => 'Kép kiválasztása',
'image_dropzone' => 'Képek feltöltése ejtéssel vagy kattintással', 'image_dropzone' => 'Képek feltöltése ejtéssel vagy kattintással',
'image_dropzone_drop' => 'Drop images here to upload',
'images_deleted' => 'Képek törölve', 'images_deleted' => 'Képek törölve',
'image_preview' => 'Kép előnézete', 'image_preview' => 'Kép előnézete',
'image_upload_success' => 'Kép sikeresen feltöltve', 'image_upload_success' => 'Kép sikeresen feltöltve',
'image_update_success' => 'Kép részletei sikeresen frissítve', 'image_update_success' => 'Kép részletei sikeresen frissítve',
'image_delete_success' => 'Kép sikeresen törölve', 'image_delete_success' => 'Kép sikeresen törölve',
'image_upload_remove' => 'Eltávolítás',
// Code Editor // Code Editor
'code_editor' => 'Kód szerkesztése', 'code_editor' => 'Kód szerkesztése',

View File

@ -311,12 +311,12 @@ return [
'attachments' => 'Csatolmányok', 'attachments' => 'Csatolmányok',
'attachments_explain' => 'Az oldalon megjelenő fájlok feltöltése vagy hivatkozások csatolása. Az oldal oldalsávjában fognak megjelenni.', 'attachments_explain' => 'Az oldalon megjelenő fájlok feltöltése vagy hivatkozások csatolása. Az oldal oldalsávjában fognak megjelenni.',
'attachments_explain_instant_save' => 'Az itt történt módosítások azonnal el lesznek mentve.', 'attachments_explain_instant_save' => 'Az itt történt módosítások azonnal el lesznek mentve.',
'attachments_items' => 'Csatolt elemek',
'attachments_upload' => 'Fájlfeltöltés', 'attachments_upload' => 'Fájlfeltöltés',
'attachments_link' => 'Hivatkozás csatolása', 'attachments_link' => 'Hivatkozás csatolása',
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
'attachments_set_link' => 'Hivatkozás beállítása', 'attachments_set_link' => 'Hivatkozás beállítása',
'attachments_delete' => 'Biztosan törölhető ez a melléklet?', 'attachments_delete' => 'Biztosan törölhető ez a melléklet?',
'attachments_dropzone' => 'Fájlok csatolása ejtéssel vagy kattintással', 'attachments_dropzone' => 'Drop files here to upload',
'attachments_no_files' => 'Nincsenek fájlok feltöltve', 'attachments_no_files' => 'Nincsenek fájlok feltöltve',
'attachments_explain_link' => 'Fájl feltöltése helyett hozzá lehet kapcsolni egy hivatkozást. Ez egy hivatkozás lesz egy másik oldalra vagy egy fájlra a felhőben.', 'attachments_explain_link' => 'Fájl feltöltése helyett hozzá lehet kapcsolni egy hivatkozást. Ez egy hivatkozás lesz egy másik oldalra vagy egy fájlra a felhőben.',
'attachments_link_name' => 'Hivatkozás neve', 'attachments_link_name' => 'Hivatkozás neve',

View File

@ -45,7 +45,6 @@ return [
'cannot_create_thumbs' => 'A kiszolgáló nem tud létrehozni bélyegképeket. Ellenőrizni kell, hogy telepítve van-a a GD PHP kiterjesztés.', 'cannot_create_thumbs' => 'A kiszolgáló nem tud létrehozni bélyegképeket. Ellenőrizni kell, hogy telepítve van-a a GD PHP kiterjesztés.',
'server_upload_limit' => 'A kiszolgáló nem engedélyez ilyen méretű feltöltéseket. Kisebb fájlmérettel kell próbálkozni.', 'server_upload_limit' => 'A kiszolgáló nem engedélyez ilyen méretű feltöltéseket. Kisebb fájlmérettel kell próbálkozni.',
'uploaded' => 'A kiszolgáló nem engedélyez ilyen méretű feltöltéseket. Kisebb fájlmérettel kell próbálkozni.', 'uploaded' => 'A kiszolgáló nem engedélyez ilyen méretű feltöltéseket. Kisebb fájlmérettel kell próbálkozni.',
'file_upload_timeout' => 'A fáj feltöltése időtúllépést okozott.',
// Drawing & Images // Drawing & Images
'image_upload_error' => 'Hiba történt a kép feltöltése közben', 'image_upload_error' => 'Hiba történt a kép feltöltése közben',
@ -54,6 +53,7 @@ return [
// Attachments // Attachments
'attachment_not_found' => 'Csatolmány nem található', 'attachment_not_found' => 'Csatolmány nem található',
'attachment_upload_error' => 'An error occurred uploading the attachment file',
// Pages // Pages
'page_draft_autosave_fail' => 'Nem sikerült a vázlat mentése. Mentés előtt meg kell róla győződni, hogy van internetkapcsolat', 'page_draft_autosave_fail' => 'Nem sikerült a vázlat mentése. Mentés előtt meg kell róla győződni, hogy van internetkapcsolat',

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