Compare commits

...

50 Commits

Author SHA1 Message Date
Dan Brown
86090a694f Updated version and assets for release v21.04.6 2021-05-24 13:06:03 +01:00
Dan Brown
1ee8287c73 Merge branch 'v21.04.x' into release 2021-05-24 13:05:34 +01:00
Dan Brown
c7322a71f7 Added theme add social driver redirect configuration callback
Allows someone using the theme system to configure the social driver
before a redirect action occurs, by passing a callback as an additional
param to the theme 'addSocialDriver' method.
2021-05-24 12:55:45 +01:00
Dan Brown
2c3523f6a1 Updated image permission setting logic
To ensure thhat the visibility is still set on local storage options
since the previous recent changes could cause problems where in
scenarios where the server user could not read images uploaded by the
php process user.

Closes #2758
2021-05-24 12:09:28 +01:00
Dan Brown
8eb98cd591 Updated version and assets for release v21.04.5 2021-05-15 17:56:29 +01:00
Dan Brown
0f9ba21b05 Merge branch 'v21.04.x' into release 2021-05-15 17:56:03 +01:00
Dan Brown
7a059a5e90 Updated translator attribution before release v21.04.5 2021-05-15 17:54:57 +01:00
Dan Brown
e5fc104aff New Crowdin updates (#2737)
* New translations errors.php (Italian)

* New translations errors.php (Slovak)

* New translations errors.php (Norwegian Bokmal)

* New translations errors.php (Bosnian)

* New translations errors.php (Latvian)

* New translations errors.php (Spanish, Argentina)

* New translations errors.php (Persian)

* New translations errors.php (Indonesian)

* New translations errors.php (Portuguese, Brazilian)

* New translations errors.php (Vietnamese)

* New translations errors.php (Chinese Traditional)

* New translations errors.php (Chinese Simplified)

* New translations errors.php (Ukrainian)

* New translations errors.php (Turkish)

* New translations errors.php (Swedish)

* New translations errors.php (Slovenian)

* New translations errors.php (Russian)

* New translations errors.php (French)

* New translations errors.php (Portuguese)

* New translations errors.php (Polish)

* New translations errors.php (Dutch)

* New translations errors.php (Korean)

* New translations errors.php (Japanese)

* New translations errors.php (Hungarian)

* New translations errors.php (Hebrew)

* New translations errors.php (German)

* New translations errors.php (Danish)

* New translations errors.php (Czech)

* New translations errors.php (Catalan)

* New translations errors.php (Bulgarian)

* New translations errors.php (Arabic)

* New translations errors.php (Spanish)

* New translations errors.php (German Informal)

* New translations errors.php (Chinese Simplified)

* New translations errors.php (French)

* New translations common.php (French)

* New translations errors.php (Spanish, Argentina)

* New translations common.php (Spanish, Argentina)

* New translations entities.php (Spanish, Argentina)

* New translations activities.php (Arabic)

* New translations auth.php (Arabic)

* New translations entities.php (Arabic)

* New translations auth.php (Arabic)

* New translations components.php (Arabic)

* New translations entities.php (Arabic)

* New translations errors.php (Russian)

* New translations common.php (Portuguese)

* New translations errors.php (Portuguese)
2021-05-15 17:50:02 +01:00
Dan Brown
d0ed165630 Merge pull request #2735 from dopyrory3/table_column_fix
Fix table width styling on pages rendered in markdown
2021-05-15 17:48:27 +01:00
Dan Brown
68ef6a842f Fixed issue thrown upon empty markdown content save
Closes #2741
2021-05-15 17:33:53 +01:00
Dan Brown
c1f070a136 Handle acl set of images differently for s3 and s3-like
Related to #2739
2021-05-15 17:25:51 +01:00
Dan Brown
c2cc1ec5e5 Adjusted dompdf font path to writable folder
Related to #2746
2021-05-15 12:19:36 +01:00
Rory Maher
386925ad8e Apply column fix to all tables 2021-05-10 12:11:28 +01:00
Rory Maher
243c1db408 Revert "Fix table width style"
This reverts commit b010d2663d.
2021-05-10 12:10:02 +01:00
Dan Brown
834f8e7046 Updated version and assets for release v21.04.4 2021-05-09 14:46:05 +01:00
Dan Brown
32e3399334 Merge branch 'master' into release 2021-05-09 14:45:36 +01:00
Dan Brown
9e7bcacf8c Moved NotifyException render work from handler to exception
As continued from last commit.
2021-05-08 19:00:09 +01:00
Dan Brown
7be7d7d1e7 Updated not-found image path handling to have better ux
Added test to cover.
Started refactoring some of the app error handling in
the process of this.

Fixes #2696
2021-05-08 18:49:58 +01:00
Dan Brown
04c1d0e071 Updated translators before v21.04.4 release 2021-05-08 17:56:35 +01:00
Dan Brown
ab62e0f75b Merge pull request #2716 from Jokuna/master
Update Korean translation
2021-05-08 17:53:02 +01:00
Dan Brown
d85f99c87c New Crowdin updates (#2719)
* New translations entities.php (Dutch)

* New translations components.php (Italian)

* New translations entities.php (Italian)

* New translations entities.php (Italian)

* New translations errors.php (Italian)

* New translations passwords.php (Italian)

* New translations settings.php (Italian)

* New translations validation.php (Italian)

* New translations settings.php (Italian)

* New translations settings.php (Italian)

* New translations common.php (Indonesian)

* New translations settings.php (Italian)

* New translations settings.php (Italian)

* New translations settings.php (Italian)

* New translations settings.php (Italian)

* New translations settings.php (Italian)

* New translations common.php (Portuguese)

* New translations common.php (Arabic)

* New translations common.php (Arabic)

* New translations entities.php (Arabic)

* New translations entities.php (Arabic)

* New translations settings.php (Italian)
2021-05-08 17:52:32 +01:00
Dan Brown
c42b6aece9 Updated composer deps again and run npm audit fix 2021-05-08 17:50:28 +01:00
Dan Brown
7f8f3080c5 Removed php8-only 'mixed' type from test method 2021-05-08 13:23:28 +01:00
Dan Brown
9cf4191079 Reviewed and updated SAML2 authncontext option
Added tests to cover.
Changed default to align with existing default.
Added env option parsing.
For #1998
2021-05-08 13:07:25 +01:00
Dan Brown
b8e2d75014 Merge branch 'ivir-authncontext' of https://github.com/ivir/BookStack into ivir-ivir-authncontext 2021-05-08 12:13:27 +01:00
Dan Brown
f522f16526 Fixed SAML login button alignment 2021-05-08 11:49:18 +01:00
Rory Maher
b010d2663d Fix table width style
Tables generated by the markdown renderer don't honour the max-width property without applying word-break styling to the td elements
2021-05-06 13:23:38 +01:00
Dan Brown
a083ceaf44 Fixed item export with deleted creator/updated
Added test to cover.
Fixes #2733
2021-05-05 22:52:08 +01:00
Dan Brown
95798a2eba Standardised export views with base layout, Reduced included export styles
Related to #2666
2021-05-04 23:15:05 +01:00
Dan Brown
43b6633183 Filtered scripts in custom HTML head for exports
Since it appeared to cause problems in some scenarios.
Related to #2490
2021-05-03 23:59:52 +01:00
Dan Brown
c50ac022a8 Updated composer deps 2021-05-03 22:32:19 +01:00
Dan Brown
a3d36237e2 Fixed white borders on layout tabs on ios
Closes #2728
2021-05-03 22:28:25 +01:00
Jokuna
a2be61f26d [Fix] app_footer_links_desc 2021-04-29 15:06:58 +09:00
Jokuna
79f5b579d7 [Fix] maint_delete_images_only_in_revisions better 2021-04-29 14:49:46 +09:00
Jokuna
66ecee1e26 [Fix] maint_delete_images_only_in_revisions 2021-04-29 13:54:24 +09:00
Jokuna
02e86ea18f [Fix] app_footer_links_desc 2021-04-29 13:44:50 +09:00
Jokuna
723dbe1da7 [Fix] korean 2021-04-29 13:43:10 +09:00
Jokuna
65fe89441f fix pages_revisions_resotred_from 2021-04-29 13:39:11 +09:00
Jokuna
2093122ac5 Korean translation
resources/lang/ko/settings.php
2021-04-29 12:58:53 +09:00
Jokuna
ab584c93bc Korean translations
activities.php
common.php
entities.php
validation.php
2021-04-29 00:11:01 +09:00
Dan Brown
2d8698a218 Updated version and assets for release v21.04.3 2021-04-27 22:01:37 +01:00
Dan Brown
454fb883a2 Merge branch 'master' into release 2021-04-27 22:01:15 +01:00
Dan Brown
fc504a3d2c Updated translator attribution before release v21.04.3 2021-04-27 22:00:51 +01:00
Dan Brown
dd805503fb New Crowdin updates (#2695)
* New translations settings.php (Japanese)

* New translations settings.php (Japanese)

* New translations common.php (Latvian)

* New translations common.php (Russian)

* New translations settings.php (Dutch)

* New translations common.php (Dutch)

* New translations settings.php (Dutch)

* New translations entities.php (Dutch)

* New translations validation.php (Dutch)

* New translations activities.php (Dutch)

* New translations common.php (German)

* New translations common.php (Dutch)

* New translations common.php (German Informal)

* New translations activities.php (Dutch)

* New translations entities.php (German)

* New translations settings.php (German)

* New translations auth.php (Dutch)

* New translations components.php (Dutch)

* New translations common.php (German Informal)

* New translations entities.php (German Informal)

* New translations settings.php (German Informal)

* New translations common.php (Catalan)

* New translations common.php (Catalan)

* New translations passwords.php (Catalan)

* New translations validation.php (Catalan)

* New translations validation.php (Catalan)

* New translations auth.php (Catalan)

* New translations common.php (Italian)

* New translations activities.php (Italian)

* New translations common.php (Italian)
2021-04-27 21:58:09 +01:00
Dan Brown
f24336f77a Updated mobile content tabs to respect dark mode 2021-04-27 21:55:33 +01:00
Dan Brown
aa6a752e38 Implemented custom select controls because apple hates web developers
They'd rather keep pushing their 2007 era strange form control styles
even though they're horribly outdated, ugly and hard to style. The
only way to override is a full nuking of the default styles, which means
we have to then implement the frigging arrow icon using hacks which would
then conflict with all other sensible browsers so we have to nuke their
styles aswell to ensure some stupid backgroud hack is used everywhere.

I bet apple don't even use their shite default control styles and nuke
them also, Lets see. Yup, First thing I see on the top of their homepage
is a locale select dropdown custom built from about 10 HTML elements. FML

For #2709
2021-04-27 21:36:08 +01:00
Dan Brown
83b576eb19 Prevented "Recently Viewed" homepage list showing non-user-viewed items
Triggered when the user has no/limited views. Added a test to cover.
Closes #2703
2021-04-27 21:05:01 +01:00
Dan Brown
c4e31a0d5e Updated hard-coded string lengths for indexed columns
Since this is what's causing issues for people during migration due to max
key lengths.
Related to #2710.
2021-04-27 20:53:22 +01:00
Dan Brown
f8cdd6e80d Reduced calls for s3-based uploads
Combined the public ACL update into the put operation.
2021-04-27 20:36:42 +01:00
Jan Mareš
034478409e Add support Windows Authentication via SAML 2020-04-03 14:05:07 +02:00
128 changed files with 2450 additions and 786 deletions

View File

@@ -222,6 +222,7 @@ SAML2_IDP_x509=null
SAML2_ONELOGIN_OVERRIDES=null
SAML2_DUMP_USER_DETAILS=false
SAML2_AUTOLOAD_METADATA=false
SAML2_IDP_AUTHNCONTEXT=true
# SAML group sync configuration
# Refer to https://www.bookstackapp.com/docs/admin/saml2-auth/

View File

@@ -54,6 +54,7 @@ Name :: Languages
@benediktvolke :: German
@Baptistou :: French
@arcoai :: Spanish
@Jokuna :: Korean
cipi1965 :: Italian
Mykola Ronik (Mantikor) :: Ukrainian
furkanoyk :: Turkish
@@ -157,3 +158,10 @@ HenrijsS :: Latvian
Pascal R-B (pborgner) :: German
Boris (Ginfred) :: Russian
Jonas Anker Rasmussen (jonasanker) :: Danish
Gerwin de Keijzer (gdekeijzer) :: Dutch; German Informal; German
kometchtech :: Japanese
Auri (Atalonica) :: Catalan
Francesco Franchina (ffranchina) :: Italian
Aimrane Kds (aimrane.kds) :: Arabic
whenwesober :: Indonesian
Rem (remkovdhoef) :: Dutch

View File

@@ -96,6 +96,7 @@ class ViewService
/** @var Entity $instance */
foreach ($this->entityProvider->all() as $name => $instance) {
$items = $instance::visible()->withLastView()
->having('last_viewed_at', '>', 0)
->orderBy('last_viewed_at', 'desc')
->skip($count * ($page - 1))
->take($count)

View File

@@ -19,10 +19,37 @@ use Symfony\Component\HttpFoundation\RedirectResponse;
class SocialAuthService
{
/**
* The core socialite library used.
* @var Socialite
*/
protected $socialite;
protected $socialAccount;
protected $validSocialDrivers = ['google', 'github', 'facebook', 'slack', 'twitter', 'azure', 'okta', 'gitlab', 'twitch', 'discord'];
/**
* The default built-in social drivers we support.
* @var string[]
*/
protected $validSocialDrivers = [
'google',
'github',
'facebook',
'slack',
'twitter',
'azure',
'okta',
'gitlab',
'twitch',
'discord'
];
/**
* Callbacks to run when configuring a social driver
* for an initial redirect action.
* Array is keyed by social driver name.
* Callbacks are passed an instance of the driver.
* @var array<string, callable>
*/
protected $configureForRedirectCallbacks = [];
/**
* SocialAuthService constructor.
@@ -39,7 +66,7 @@ class SocialAuthService
public function startLogIn(string $socialDriver): RedirectResponse
{
$driver = $this->validateDriver($socialDriver);
return $this->getSocialDriver($driver)->redirect();
return $this->getDriverForRedirect($driver)->redirect();
}
/**
@@ -49,7 +76,7 @@ class SocialAuthService
public function startRegister(string $socialDriver): RedirectResponse
{
$driver = $this->validateDriver($socialDriver);
return $this->getSocialDriver($driver)->redirect();
return $this->getDriverForRedirect($driver)->redirect();
}
/**
@@ -227,7 +254,7 @@ class SocialAuthService
/**
* Provide redirect options per service for the Laravel Socialite driver
*/
public function getSocialDriver(string $driverName): Provider
protected function getDriverForRedirect(string $driverName): Provider
{
$driver = $this->socialite->driver($driverName);
@@ -238,6 +265,10 @@ class SocialAuthService
$driver->with(['resource' => 'https://graph.windows.net']);
}
if (isset($this->configureForRedirectCallbacks[$driverName])) {
$this->configureForRedirectCallbacks[$driverName]($driver);
}
return $driver;
}
@@ -248,12 +279,19 @@ class SocialAuthService
* within the `Config/services.php` file.
* Handler should be a Class@method handler to the SocialiteWasCalled event.
*/
public function addSocialDriver(string $driverName, array $config, string $socialiteHandler)
{
public function addSocialDriver(
string $driverName,
array $config,
string $socialiteHandler,
callable $configureForRedirect = null
) {
$this->validSocialDrivers[] = $driverName;
config()->set('services.' . $driverName, $config);
config()->set('services.' . $driverName . '.redirect', url('/login/service/' . $driverName . '/callback'));
config()->set('services.' . $driverName . '.name', $config['name'] ?? $driverName);
Event::listen(SocialiteWasCalled::class, $socialiteHandler);
if (!is_null($configureForRedirect)) {
$this->configureForRedirectCallbacks[$driverName] = $configureForRedirect;
}
}
}

View File

@@ -38,7 +38,7 @@ return [
* Times-Roman, Times-Bold, Times-BoldItalic, Times-Italic,
* Symbol, ZapfDingbats.
*/
"DOMPDF_FONT_DIR" => app_path('vendor/dompdf/dompdf/lib/fonts/'), //storage_path('fonts/'), // advised by dompdf (https://github.com/dompdf/dompdf/pull/782)
"DOMPDF_FONT_DIR" => storage_path('fonts/'), // advised by dompdf (https://github.com/dompdf/dompdf/pull/782)
/**
* The location of the DOMPDF font cache directory
@@ -219,7 +219,7 @@ return [
*
* @var bool
*/
"DOMPDF_ENABLE_JAVASCRIPT" => true,
"DOMPDF_ENABLE_JAVASCRIPT" => false,
/**
* Enable remote file access

View File

@@ -1,5 +1,7 @@
<?php
$SAML2_IDP_AUTHNCONTEXT = env('SAML2_IDP_AUTHNCONTEXT', true);
return [
// Display name, shown to users, for SAML2 option
@@ -139,6 +141,14 @@ return [
// )
// ),
],
'security' => [
// SAML2 Authn context
// When set to false no AuthContext will be sent in the AuthNRequest,
// When set to true (Default) you will get an AuthContext 'exact' 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport'.
// Multiple forced values can be passed via a space separated array, For example:
// SAML2_IDP_AUTHNCONTEXT="urn:federation:authentication:windows urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"
'requestedAuthnContext' => is_string($SAML2_IDP_AUTHNCONTEXT) ? explode(' ', $SAML2_IDP_AUTHNCONTEXT) : $SAML2_IDP_AUTHNCONTEXT,
],
],
];

View File

@@ -212,7 +212,7 @@ class PageRepo
if (!empty($input['markdown'] ?? '')) {
$pageContent->setNewMarkdown($input['markdown']);
} else {
$pageContent->setNewHTML($input['html']);
$pageContent->setNewHTML($input['html'] ?? '');
}
}

View File

@@ -4,6 +4,7 @@ use BookStack\Entities\Models\Page;
use BookStack\Entities\Tools\Markdown\CustomStrikeThroughExtension;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
use BookStack\Util\HtmlContentFilter;
use DOMDocument;
use DOMNodeList;
use DOMXPath;
@@ -169,7 +170,7 @@ class PageContent
$content = $this->page->html;
if (!config('app.allow_content_scripts')) {
$content = $this->escapeScripts($content);
$content = HtmlContentFilter::removeScripts($content);
}
if ($blankIncludes) {
@@ -308,65 +309,4 @@ class PageContent
return $innerContent;
}
/**
* Escape script tags within HTML content.
*/
protected function escapeScripts(string $html) : string
{
if (empty($html)) {
return $html;
}
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
$xPath = new DOMXPath($doc);
// Remove standard script tags
$scriptElems = $xPath->query('//script');
foreach ($scriptElems as $scriptElem) {
$scriptElem->parentNode->removeChild($scriptElem);
}
// Remove clickable links to JavaScript URI
$badLinks = $xPath->query('//*[contains(@href, \'javascript:\')]');
foreach ($badLinks as $badLink) {
$badLink->parentNode->removeChild($badLink);
}
// Remove forms with calls to JavaScript URI
$badForms = $xPath->query('//*[contains(@action, \'javascript:\')] | //*[contains(@formaction, \'javascript:\')]');
foreach ($badForms as $badForm) {
$badForm->parentNode->removeChild($badForm);
}
// Remove meta tag to prevent external redirects
$metaTags = $xPath->query('//meta[contains(@content, \'url\')]');
foreach ($metaTags as $metaTag) {
$metaTag->parentNode->removeChild($metaTag);
}
// Remove data or JavaScript iFrames
$badIframes = $xPath->query('//*[contains(@src, \'data:\')] | //*[contains(@src, \'javascript:\')] | //*[@srcdoc]');
foreach ($badIframes as $badIframe) {
$badIframe->parentNode->removeChild($badIframe);
}
// Remove 'on*' attributes
$onAttributes = $xPath->query('//@*[starts-with(name(), \'on\')]');
foreach ($onAttributes as $attr) {
/** @var \DOMAttr $attr*/
$attrName = $attr->nodeName;
$attr->parentNode->removeAttribute($attrName);
}
$html = '';
$topElems = $doc->documentElement->childNodes->item(0)->childNodes;
foreach ($topElems as $child) {
$html .= $doc->saveHTML($child);
}
return $html;
}
}

View File

@@ -9,7 +9,6 @@ use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class Handler extends ExceptionHandler
{
@@ -58,29 +57,6 @@ class Handler extends ExceptionHandler
return $this->renderApiException($e);
}
// Handle notify exceptions which will redirect to the
// specified location then show a notification message.
if ($this->isExceptionType($e, NotifyException::class)) {
$message = $this->getOriginalMessage($e);
if (!empty($message)) {
session()->flash('error', $message);
}
return redirect($e->redirectLocation);
}
// Handle pretty exceptions which will show a friendly application-fitting page
// Which will include the basic message to point the user roughly to the cause.
if ($this->isExceptionType($e, PrettyException::class) && !config('app.debug')) {
$message = $this->getOriginalMessage($e);
$code = ($e->getCode() === 0) ? 500 : $e->getCode();
return response()->view('errors/' . $code, ['message' => $message], $code);
}
// Handle 404 errors with a loaded session to enable showing user-specific information
if ($this->isExceptionType($e, NotFoundHttpException::class)) {
return \Route::respondWithRoute('fallback');
}
return parent::render($request, $e);
}
@@ -119,30 +95,6 @@ class Handler extends ExceptionHandler
return new JsonResponse($responseData, $code, $headers);
}
/**
* Check the exception chain to compare against the original exception type.
*/
protected function isExceptionType(Exception $e, string $type): bool
{
do {
if (is_a($e, $type)) {
return true;
}
} while ($e = $e->getPrevious());
return false;
}
/**
* Get original exception message.
*/
protected function getOriginalMessage(Exception $e): string
{
do {
$message = $e->getMessage();
} while ($e = $e->getPrevious());
return $message;
}
/**
* Convert an authentication exception into an unauthenticated response.
*

View File

@@ -1,8 +1,10 @@
<?php namespace BookStack\Exceptions;
class NotifyException extends \Exception
{
use Exception;
use Illuminate\Contracts\Support\Responsable;
class NotifyException extends Exception implements Responsable
{
public $message;
public $redirectLocation;
@@ -15,4 +17,19 @@ class NotifyException extends \Exception
$this->redirectLocation = $redirectLocation;
parent::__construct();
}
/**
* Send the response for this type of exception.
* @inheritdoc
*/
public function toResponse($request)
{
$message = $this->getMessage();
if (!empty($message)) {
session()->flash('error', $message);
}
return redirect($this->redirectLocation);
}
}

View File

@@ -1,6 +1,43 @@
<?php namespace BookStack\Exceptions;
class PrettyException extends \Exception
{
use Exception;
use Illuminate\Contracts\Support\Responsable;
class PrettyException extends Exception implements Responsable
{
/**
* @var ?string
*/
protected $subtitle = null;
/**
* @var ?string
*/
protected $details = null;
/**
* Render a response for when this exception occurs.
* @inheritdoc
*/
public function toResponse($request)
{
$code = ($this->getCode() === 0) ? 500 : $this->getCode();
return response()->view('errors.' . $code, [
'message' => $this->getMessage(),
'subtitle' => $this->subtitle,
'details' => $this->details,
], $code);
}
public function setSubtitle(string $subtitle): self
{
$this->subtitle = $subtitle;
return $this;
}
public function setDetails(string $details): self
{
$this->details = $details;
return $this;
}
}

View File

@@ -105,7 +105,7 @@ class HomeController extends Controller
*/
public function customHeadContent()
{
return view('partials.custom-head-content');
return view('partials.custom-head');
}
/**

View File

@@ -1,6 +1,7 @@
<?php namespace BookStack\Http\Controllers\Images;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Exceptions\NotFoundException;
use BookStack\Http\Controllers\Controller;
use BookStack\Uploads\Image;
use BookStack\Uploads\ImageRepo;
@@ -27,12 +28,15 @@ class ImageController extends Controller
/**
* Provide an image file from storage.
* @throws NotFoundException
*/
public function showImage(string $path)
{
$path = storage_path('uploads/images/' . $path);
if (!file_exists($path)) {
abort(404);
throw (new NotFoundException(trans('errors.image_not_found')))
->setSubtitle(trans('errors.image_not_found_subtitle'))
->setDetails(trans('errors.image_not_found_details'));
}
return response()->file($path);

View File

@@ -7,7 +7,6 @@ use BookStack\Entities\Models\Page;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Entities\Tools\PermissionsUpdater;
use BookStack\Exceptions\NotFoundException;
use BookStack\Exceptions\NotifyException;
use BookStack\Exceptions\PermissionsException;
use Exception;
use Illuminate\Http\Request;
@@ -295,7 +294,6 @@ class PageController extends Controller
* Remove the specified page from storage.
* @throws NotFoundException
* @throws Throwable
* @throws NotifyException
*/
public function destroy(string $bookSlug, string $pageSlug)
{
@@ -311,7 +309,6 @@ class PageController extends Controller
/**
* Remove the specified draft page from storage.
* @throws NotFoundException
* @throws NotifyException
* @throws Throwable
*/
public function destroyDraft(string $bookSlug, int $pageId)

View File

@@ -53,9 +53,9 @@ class ThemeService
/**
* @see SocialAuthService::addSocialDriver
*/
public function addSocialDriver(string $driverName, array $config, string $socialiteHandler)
public function addSocialDriver(string $driverName, array $config, string $socialiteHandler, callable $configureForRedirect = null)
{
$socialAuthService = app()->make(SocialAuthService::class);
$socialAuthService->addSocialDriver($driverName, $config, $socialiteHandler);
$socialAuthService->addSocialDriver($driverName, $config, $socialiteHandler, $configureForRedirect);
}
}

View File

@@ -8,6 +8,7 @@ use Illuminate\Contracts\Cache\Repository as Cache;
use Illuminate\Contracts\Filesystem\Factory as FileSystem;
use Illuminate\Contracts\Filesystem\Filesystem as FileSystemInstance;
use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\Contracts\Filesystem\Filesystem as Storage;
use Illuminate\Support\Str;
use Intervention\Image\Exception\NotSupportedException;
use Intervention\Image\ImageManager;
@@ -106,8 +107,7 @@ class ImageService
}
try {
$storage->put($fullPath, $imageData);
$storage->setVisibility($fullPath, 'public');
$this->saveImageDataInPublicSpace($storage, $fullPath, $imageData);
} catch (Exception $e) {
\Log::error('Error when attempting image upload:' . $e->getMessage());
throw new ImageUploadException(trans('errors.path_not_writable', ['filePath' => $fullPath]));
@@ -132,6 +132,25 @@ class ImageService
return $image;
}
/**
* Save image data for the given path in the public space, if possible,
* for the provided storage mechanism.
*/
protected function saveImageDataInPublicSpace(Storage $storage, string $path, string $data)
{
$storage->put($path, $data);
// Set visibility when a non-AWS-s3, s3-like storage option is in use.
// Done since this call can break s3-like services but desired for other image stores.
// Attempting to set ACL during above put request requires different permissions
// hence would technically be a breaking change for actual s3 usage.
$usingS3 = strtolower(config('filesystems.images')) === 's3';
$usingS3Like = $usingS3 && !is_null(config('filesystems.disks.s3.endpoint'));
if (!$usingS3Like) {
$storage->setVisibility($path, 'public');
}
}
/**
* Clean up an image file name to be both URL and storage safe.
*/
@@ -191,8 +210,7 @@ class ImageService
$thumbData = $this->resizeImage($storage->get($imagePath), $width, $height, $keepRatio);
$storage->put($thumbFilePath, $thumbData);
$storage->setVisibility($thumbFilePath, 'public');
$this->saveImageDataInPublicSpace($storage, $thumbFilePath, $thumbData);
$this->cache->put('images-' . $image->id . '-' . $thumbFilePath, $thumbFilePath, 60 * 60 * 72);

View File

@@ -0,0 +1,71 @@
<?php namespace BookStack\Util;
use DOMDocument;
use DOMNode;
use DOMNodeList;
use DOMXPath;
class HtmlContentFilter
{
/**
* Remove all of the script elements from the given HTML.
*/
public static function removeScripts(string $html): string
{
if (empty($html)) {
return $html;
}
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
$xPath = new DOMXPath($doc);
// Remove standard script tags
$scriptElems = $xPath->query('//script');
static::removeNodes($scriptElems);
// Remove clickable links to JavaScript URI
$badLinks = $xPath->query('//*[contains(@href, \'javascript:\')]');
static::removeNodes($badLinks);
// Remove forms with calls to JavaScript URI
$badForms = $xPath->query('//*[contains(@action, \'javascript:\')] | //*[contains(@formaction, \'javascript:\')]');
static::removeNodes($badForms);
// Remove meta tag to prevent external redirects
$metaTags = $xPath->query('//meta[contains(@content, \'url\')]');
static::removeNodes($metaTags);
// Remove data or JavaScript iFrames
$badIframes = $xPath->query('//*[contains(@src, \'data:\')] | //*[contains(@src, \'javascript:\')] | //*[@srcdoc]');
static::removeNodes($badIframes);
// Remove 'on*' attributes
$onAttributes = $xPath->query('//@*[starts-with(name(), \'on\')]');
foreach ($onAttributes as $attr) {
/** @var \DOMAttr $attr*/
$attrName = $attr->nodeName;
$attr->parentNode->removeAttribute($attrName);
}
$html = '';
$topElems = $doc->documentElement->childNodes->item(0)->childNodes;
foreach ($topElems as $child) {
$html .= $doc->saveHTML($child);
}
return $html;
}
/**
* Removed all of the given DOMNodes.
*/
static protected function removeNodes(DOMNodeList $nodes): void
{
foreach ($nodes as $node) {
$node->parentNode->removeChild($node);
}
}
}

347
composer.lock generated
View File

@@ -8,16 +8,16 @@
"packages": [
{
"name": "aws/aws-sdk-php",
"version": "3.178.6",
"version": "3.180.5",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "0aa83b522d5ffa794c02e7411af87a0e241a3082"
"reference": "948a4defbe2a571cc4460725015b8e98b7060f2d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0aa83b522d5ffa794c02e7411af87a0e241a3082",
"reference": "0aa83b522d5ffa794c02e7411af87a0e241a3082",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/948a4defbe2a571cc4460725015b8e98b7060f2d",
"reference": "948a4defbe2a571cc4460725015b8e98b7060f2d",
"shasum": ""
},
"require": {
@@ -92,9 +92,9 @@
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.178.6"
"source": "https://github.com/aws/aws-sdk-php/tree/3.180.5"
},
"time": "2021-04-19T18:13:17+00:00"
"time": "2021-05-07T18:12:43+00:00"
},
{
"name": "barryvdh/laravel-dompdf",
@@ -229,40 +229,39 @@
},
{
"name": "doctrine/cache",
"version": "1.10.2",
"version": "1.11.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "13e3381b25847283a91948d04640543941309727"
"reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727",
"reference": "13e3381b25847283a91948d04640543941309727",
"url": "https://api.github.com/repos/doctrine/cache/zipball/a9c1b59eba5a08ca2770a76eddb88922f504e8e0",
"reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0",
"shasum": ""
},
"require": {
"php": "~7.1 || ^8.0"
},
"conflict": {
"doctrine/common": ">2.2,<2.4"
"doctrine/common": ">2.2,<2.4",
"psr/cache": ">=3"
},
"require-dev": {
"alcaeus/mongo-php-adapter": "^1.1",
"doctrine/coding-standard": "^6.0",
"cache/integration-tests": "dev-master",
"doctrine/coding-standard": "^8.0",
"mongodb/mongodb": "^1.1",
"phpunit/phpunit": "^7.0",
"predis/predis": "~1.0"
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
"predis/predis": "~1.0",
"psr/cache": "^1.0 || ^2.0",
"symfony/cache": "^4.4 || ^5.2"
},
"suggest": {
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.9.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
@@ -309,7 +308,7 @@
],
"support": {
"issues": "https://github.com/doctrine/cache/issues",
"source": "https://github.com/doctrine/cache/tree/1.10.x"
"source": "https://github.com/doctrine/cache/tree/1.11.0"
},
"funding": [
{
@@ -325,7 +324,7 @@
"type": "tidelift"
}
],
"time": "2020-07-07T18:54:01+00:00"
"time": "2021-04-13T14:46:17+00:00"
},
{
"name": "doctrine/dbal",
@@ -952,16 +951,16 @@
},
{
"name": "facade/flare-client-php",
"version": "1.7.0",
"version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/facade/flare-client-php.git",
"reference": "6bf380035890cb0a09b9628c491ae3866b858522"
"reference": "69742118c037f34ee1ef86dc605be4a105d9e984"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/facade/flare-client-php/zipball/6bf380035890cb0a09b9628c491ae3866b858522",
"reference": "6bf380035890cb0a09b9628c491ae3866b858522",
"url": "https://api.github.com/repos/facade/flare-client-php/zipball/69742118c037f34ee1ef86dc605be4a105d9e984",
"reference": "69742118c037f34ee1ef86dc605be4a105d9e984",
"shasum": ""
},
"require": {
@@ -1005,7 +1004,7 @@
],
"support": {
"issues": "https://github.com/facade/flare-client-php/issues",
"source": "https://github.com/facade/flare-client-php/tree/1.7.0"
"source": "https://github.com/facade/flare-client-php/tree/1.8.0"
},
"funding": [
{
@@ -1013,7 +1012,7 @@
"type": "github"
}
],
"time": "2021-04-12T09:30:36+00:00"
"time": "2021-04-30T11:11:50+00:00"
},
{
"name": "facade/ignition",
@@ -1204,16 +1203,16 @@
},
{
"name": "filp/whoops",
"version": "2.12.0",
"version": "2.12.1",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
"reference": "d501fd2658d55491a2295ff600ae5978eaad7403"
"reference": "c13c0be93cff50f88bbd70827d993026821914dd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/d501fd2658d55491a2295ff600ae5978eaad7403",
"reference": "d501fd2658d55491a2295ff600ae5978eaad7403",
"url": "https://api.github.com/repos/filp/whoops/zipball/c13c0be93cff50f88bbd70827d993026821914dd",
"reference": "c13c0be93cff50f88bbd70827d993026821914dd",
"shasum": ""
},
"require": {
@@ -1263,7 +1262,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
"source": "https://github.com/filp/whoops/tree/2.12.0"
"source": "https://github.com/filp/whoops/tree/2.12.1"
},
"funding": [
{
@@ -1271,7 +1270,7 @@
"type": "github"
}
],
"time": "2021-03-30T12:00:00+00:00"
"time": "2021-04-25T12:00:00+00:00"
},
{
"name": "guzzlehttp/guzzle",
@@ -1433,16 +1432,16 @@
},
{
"name": "guzzlehttp/psr7",
"version": "1.8.1",
"version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "35ea11d335fd638b5882ff1725228b3d35496ab1"
"reference": "dc960a912984efb74d0a90222870c72c87f10c91"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1",
"reference": "35ea11d335fd638b5882ff1725228b3d35496ab1",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91",
"reference": "dc960a912984efb74d0a90222870c72c87f10c91",
"shasum": ""
},
"require": {
@@ -1502,9 +1501,9 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.8.1"
"source": "https://github.com/guzzle/psr7/tree/1.8.2"
},
"time": "2021-03-21T16:25:00+00:00"
"time": "2021-04-26T09:17:50+00:00"
},
{
"name": "intervention/image",
@@ -1652,16 +1651,16 @@
},
{
"name": "laravel/framework",
"version": "v6.20.23",
"version": "v6.20.26",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "d94c07d72c14f07e7d2027458e7f0a76f9ceb0d9"
"reference": "0117d797dc1ab64b1f88d4f6b966380ea7def091"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/d94c07d72c14f07e7d2027458e7f0a76f9ceb0d9",
"reference": "d94c07d72c14f07e7d2027458e7f0a76f9ceb0d9",
"url": "https://api.github.com/repos/laravel/framework/zipball/0117d797dc1ab64b1f88d4f6b966380ea7def091",
"reference": "0117d797dc1ab64b1f88d4f6b966380ea7def091",
"shasum": ""
},
"require": {
@@ -1801,7 +1800,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2021-04-13T13:49:28+00:00"
"time": "2021-04-28T14:38:32+00:00"
},
{
"name": "laravel/socialite",
@@ -1874,16 +1873,16 @@
},
{
"name": "league/commonmark",
"version": "1.5.8",
"version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "08fa59b8e4e34ea8a773d55139ae9ac0e0aecbaf"
"reference": "2651c497f005de305c7ba3f232cbd87b8c00ee8c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/08fa59b8e4e34ea8a773d55139ae9ac0e0aecbaf",
"reference": "08fa59b8e4e34ea8a773d55139ae9ac0e0aecbaf",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2651c497f005de305c7ba3f232cbd87b8c00ee8c",
"reference": "2651c497f005de305c7ba3f232cbd87b8c00ee8c",
"shasum": ""
},
"require": {
@@ -1971,7 +1970,7 @@
"type": "tidelift"
}
],
"time": "2021-03-28T18:51:39+00:00"
"time": "2021-05-08T16:08:00+00:00"
},
{
"name": "league/flysystem",
@@ -2409,16 +2408,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.46.0",
"version": "2.47.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4"
"reference": "606262fd8888b75317ba9461825a24fc34001e1e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4",
"reference": "2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/606262fd8888b75317ba9461825a24fc34001e1e",
"reference": "606262fd8888b75317ba9461825a24fc34001e1e",
"shasum": ""
},
"require": {
@@ -2498,7 +2497,7 @@
"type": "tidelift"
}
],
"time": "2021-02-24T17:30:44+00:00"
"time": "2021-04-13T21:54:02+00:00"
},
{
"name": "nunomaduro/collision",
@@ -3228,16 +3227,16 @@
},
{
"name": "psr/log",
"version": "1.1.3",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
"require": {
@@ -3261,7 +3260,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
@@ -3272,9 +3271,9 @@
"psr-3"
],
"support": {
"source": "https://github.com/php-fig/log/tree/1.1.3"
"source": "https://github.com/php-fig/log/tree/1.1.4"
},
"time": "2020-03-23T09:12:05+00:00"
"time": "2021-05-03T11:20:27+00:00"
},
{
"name": "psr/simple-cache",
@@ -4073,16 +4072,16 @@
},
{
"name": "symfony/console",
"version": "v4.4.21",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23"
"reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/1ba4560dbbb9fcf5ae28b61f71f49c678086cf23",
"reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23",
"url": "https://api.github.com/repos/symfony/console/zipball/36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625",
"reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625",
"shasum": ""
},
"require": {
@@ -4142,7 +4141,7 @@
"description": "Eases the creation of beautiful and testable command line interfaces",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/console/tree/v4.4.21"
"source": "https://github.com/symfony/console/tree/v4.4.22"
},
"funding": [
{
@@ -4158,20 +4157,20 @@
"type": "tidelift"
}
],
"time": "2021-03-26T09:23:24+00:00"
"time": "2021-04-16T17:32:19+00:00"
},
{
"name": "symfony/css-selector",
"version": "v4.4.20",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
"reference": "f907d3e53ecb2a5fad8609eb2f30525287a734c8"
"reference": "01c77324d1d47efbfd7891f62a7c256c69330115"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/f907d3e53ecb2a5fad8609eb2f30525287a734c8",
"reference": "f907d3e53ecb2a5fad8609eb2f30525287a734c8",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/01c77324d1d47efbfd7891f62a7c256c69330115",
"reference": "01c77324d1d47efbfd7891f62a7c256c69330115",
"shasum": ""
},
"require": {
@@ -4207,7 +4206,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/css-selector/tree/v4.4.20"
"source": "https://github.com/symfony/css-selector/tree/v4.4.22"
},
"funding": [
{
@@ -4223,20 +4222,20 @@
"type": "tidelift"
}
],
"time": "2021-01-27T09:09:26+00:00"
"time": "2021-04-07T15:47:03+00:00"
},
{
"name": "symfony/debug",
"version": "v4.4.20",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
"reference": "157bbec4fd773bae53c5483c50951a5530a2cc16"
"reference": "45b2136377cca5f10af858968d6079a482bca473"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/157bbec4fd773bae53c5483c50951a5530a2cc16",
"reference": "157bbec4fd773bae53c5483c50951a5530a2cc16",
"url": "https://api.github.com/repos/symfony/debug/zipball/45b2136377cca5f10af858968d6079a482bca473",
"reference": "45b2136377cca5f10af858968d6079a482bca473",
"shasum": ""
},
"require": {
@@ -4276,7 +4275,7 @@
"description": "Provides tools to ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/debug/tree/v4.4.20"
"source": "https://github.com/symfony/debug/tree/v4.4.22"
},
"funding": [
{
@@ -4292,7 +4291,7 @@
"type": "tidelift"
}
],
"time": "2021-01-28T16:54:48+00:00"
"time": "2021-04-02T07:50:12+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -4363,16 +4362,16 @@
},
{
"name": "symfony/error-handler",
"version": "v4.4.21",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
"reference": "48e81a375525872e788c2418430f54150d935810"
"reference": "76603a8df8e001436df80758eb03a8baa5324175"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/48e81a375525872e788c2418430f54150d935810",
"reference": "48e81a375525872e788c2418430f54150d935810",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/76603a8df8e001436df80758eb03a8baa5324175",
"reference": "76603a8df8e001436df80758eb03a8baa5324175",
"shasum": ""
},
"require": {
@@ -4412,7 +4411,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/error-handler/tree/v4.4.21"
"source": "https://github.com/symfony/error-handler/tree/v4.4.22"
},
"funding": [
{
@@ -4428,7 +4427,7 @@
"type": "tidelift"
}
],
"time": "2021-03-08T10:28:40+00:00"
"time": "2021-04-02T07:50:12+00:00"
},
{
"name": "symfony/event-dispatcher",
@@ -4733,16 +4732,16 @@
},
{
"name": "symfony/http-foundation",
"version": "v4.4.20",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "02d968647fe61b2f419a8dc70c468a9d30a48d3a"
"reference": "1a6f87ef99d05b1bf5c865b4ef7992263e1cb081"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/02d968647fe61b2f419a8dc70c468a9d30a48d3a",
"reference": "02d968647fe61b2f419a8dc70c468a9d30a48d3a",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/1a6f87ef99d05b1bf5c865b4ef7992263e1cb081",
"reference": "1a6f87ef99d05b1bf5c865b4ef7992263e1cb081",
"shasum": ""
},
"require": {
@@ -4781,7 +4780,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v4.4.20"
"source": "https://github.com/symfony/http-foundation/tree/v4.4.22"
},
"funding": [
{
@@ -4797,20 +4796,20 @@
"type": "tidelift"
}
],
"time": "2021-02-25T17:11:33+00:00"
"time": "2021-04-30T12:05:50+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v4.4.21",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "0248214120d00c5f44f1cd5d9ad65f0b38459333"
"reference": "cd2e325fc34a4a5bbec91eecf69dda8ee8c5ea4f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/0248214120d00c5f44f1cd5d9ad65f0b38459333",
"reference": "0248214120d00c5f44f1cd5d9ad65f0b38459333",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/cd2e325fc34a4a5bbec91eecf69dda8ee8c5ea4f",
"reference": "cd2e325fc34a4a5bbec91eecf69dda8ee8c5ea4f",
"shasum": ""
},
"require": {
@@ -4885,7 +4884,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v4.4.21"
"source": "https://github.com/symfony/http-kernel/tree/v4.4.22"
},
"funding": [
{
@@ -4901,20 +4900,20 @@
"type": "tidelift"
}
],
"time": "2021-03-29T05:11:04+00:00"
"time": "2021-05-01T14:38:48+00:00"
},
{
"name": "symfony/mime",
"version": "v5.2.6",
"version": "v5.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
"reference": "1b2092244374cbe48ae733673f2ca0818b37197b"
"reference": "7af452bf51c46f18da00feb32e1ad36db9426515"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/1b2092244374cbe48ae733673f2ca0818b37197b",
"reference": "1b2092244374cbe48ae733673f2ca0818b37197b",
"url": "https://api.github.com/repos/symfony/mime/zipball/7af452bf51c46f18da00feb32e1ad36db9426515",
"reference": "7af452bf51c46f18da00feb32e1ad36db9426515",
"shasum": ""
},
"require": {
@@ -4968,7 +4967,7 @@
"mime-type"
],
"support": {
"source": "https://github.com/symfony/mime/tree/v5.2.6"
"source": "https://github.com/symfony/mime/tree/v5.2.7"
},
"funding": [
{
@@ -4984,7 +4983,7 @@
"type": "tidelift"
}
],
"time": "2021-03-12T13:18:39+00:00"
"time": "2021-04-29T20:47:09+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -5636,16 +5635,16 @@
},
{
"name": "symfony/process",
"version": "v4.4.20",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a"
"reference": "f5481b22729d465acb1cea3455fc04ce84b0148b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a",
"reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a",
"url": "https://api.github.com/repos/symfony/process/zipball/f5481b22729d465acb1cea3455fc04ce84b0148b",
"reference": "f5481b22729d465acb1cea3455fc04ce84b0148b",
"shasum": ""
},
"require": {
@@ -5677,7 +5676,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v4.4.20"
"source": "https://github.com/symfony/process/tree/v4.4.22"
},
"funding": [
{
@@ -5693,20 +5692,20 @@
"type": "tidelift"
}
],
"time": "2021-01-27T09:09:26+00:00"
"time": "2021-04-07T16:22:29+00:00"
},
{
"name": "symfony/routing",
"version": "v4.4.20",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "69919991c845b34626664ddc9b3aef9d09d2a5df"
"reference": "049e7c5c41f98511959668791b4adc0898a821b3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/69919991c845b34626664ddc9b3aef9d09d2a5df",
"reference": "69919991c845b34626664ddc9b3aef9d09d2a5df",
"url": "https://api.github.com/repos/symfony/routing/zipball/049e7c5c41f98511959668791b4adc0898a821b3",
"reference": "049e7c5c41f98511959668791b4adc0898a821b3",
"shasum": ""
},
"require": {
@@ -5765,7 +5764,7 @@
"url"
],
"support": {
"source": "https://github.com/symfony/routing/tree/v4.4.20"
"source": "https://github.com/symfony/routing/tree/v4.4.22"
},
"funding": [
{
@@ -5781,7 +5780,7 @@
"type": "tidelift"
}
],
"time": "2021-02-22T15:37:04+00:00"
"time": "2021-04-11T12:59:39+00:00"
},
{
"name": "symfony/service-contracts",
@@ -6030,16 +6029,16 @@
},
{
"name": "symfony/var-dumper",
"version": "v4.4.21",
"version": "v4.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "0da0e174f728996f5d5072d6a9f0a42259dbc806"
"reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/0da0e174f728996f5d5072d6a9f0a42259dbc806",
"reference": "0da0e174f728996f5d5072d6a9f0a42259dbc806",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/c194bcedde6295f3ec3e9eba1f5d484ea97c41a7",
"reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7",
"shasum": ""
},
"require": {
@@ -6099,7 +6098,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v4.4.21"
"source": "https://github.com/symfony/var-dumper/tree/v4.4.22"
},
"funding": [
{
@@ -6115,7 +6114,7 @@
"type": "tidelift"
}
],
"time": "2021-03-27T19:49:03+00:00"
"time": "2021-04-19T13:36:17+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -6546,20 +6545,21 @@
},
{
"name": "composer/composer",
"version": "2.0.12",
"version": "2.0.13",
"source": {
"type": "git",
"url": "https://github.com/composer/composer.git",
"reference": "6c12ce263da71641903e399c3ce8ecb08fd375fb"
"reference": "986e8b86b7b570632ad0a905c3726c33dd4c0efb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/composer/zipball/6c12ce263da71641903e399c3ce8ecb08fd375fb",
"reference": "6c12ce263da71641903e399c3ce8ecb08fd375fb",
"url": "https://api.github.com/repos/composer/composer/zipball/986e8b86b7b570632ad0a905c3726c33dd4c0efb",
"reference": "986e8b86b7b570632ad0a905c3726c33dd4c0efb",
"shasum": ""
},
"require": {
"composer/ca-bundle": "^1.0",
"composer/metadata-minifier": "^1.0",
"composer/semver": "^3.0",
"composer/spdx-licenses": "^1.2",
"composer/xdebug-handler": "^1.1",
@@ -6623,7 +6623,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/composer/issues",
"source": "https://github.com/composer/composer/tree/2.0.12"
"source": "https://github.com/composer/composer/tree/2.0.13"
},
"funding": [
{
@@ -6639,7 +6639,76 @@
"type": "tidelift"
}
],
"time": "2021-04-01T08:14:59+00:00"
"time": "2021-04-27T11:11:08+00:00"
},
{
"name": "composer/metadata-minifier",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/composer/metadata-minifier.git",
"reference": "c549d23829536f0d0e984aaabbf02af91f443207"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207",
"reference": "c549d23829536f0d0e984aaabbf02af91f443207",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
"composer/composer": "^2",
"phpstan/phpstan": "^0.12.55",
"symfony/phpunit-bridge": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"Composer\\MetadataMinifier\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "Small utility library that handles metadata minification and expansion.",
"keywords": [
"composer",
"compression"
],
"support": {
"issues": "https://github.com/composer/metadata-minifier/issues",
"source": "https://github.com/composer/metadata-minifier/tree/1.0.0"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2021-04-07T13:37:33+00:00"
},
{
"name": "composer/semver",
@@ -7382,16 +7451,16 @@
},
{
"name": "nikic/php-parser",
"version": "v4.10.4",
"version": "v4.10.5",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
"reference": "4432ba399e47c66624bc73c8c0f811e5c109576f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f",
"reference": "4432ba399e47c66624bc73c8c0f811e5c109576f",
"shasum": ""
},
"require": {
@@ -7432,9 +7501,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4"
"source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5"
},
"time": "2020-12-20T10:01:03+00:00"
"time": "2021-05-03T19:11:20+00:00"
},
{
"name": "phar-io/manifest",
@@ -9449,16 +9518,16 @@
},
{
"name": "symfony/filesystem",
"version": "v5.2.6",
"version": "v5.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "8c86a82f51658188119e62cff0a050a12d09836f"
"reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/8c86a82f51658188119e62cff0a050a12d09836f",
"reference": "8c86a82f51658188119e62cff0a050a12d09836f",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0",
"reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0",
"shasum": ""
},
"require": {
@@ -9491,7 +9560,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/filesystem/tree/v5.2.6"
"source": "https://github.com/symfony/filesystem/tree/v5.2.7"
},
"funding": [
{
@@ -9507,7 +9576,7 @@
"type": "tidelift"
}
],
"time": "2021-03-28T14:30:26+00:00"
"time": "2021-04-01T10:42:13+00:00"
},
{
"name": "theseer/tokenizer",

View File

@@ -15,7 +15,7 @@ class CreateSearchIndexTable extends Migration
{
Schema::create('search_terms', function (Blueprint $table) {
$table->increments('id');
$table->string('term', 200);
$table->string('term', 180);
$table->string('entity_type', 100);
$table->integer('entity_id');
$table->integer('score');

View File

@@ -14,7 +14,7 @@ class AddRoleExternalAuthId extends Migration
public function up()
{
Schema::table('roles', function (Blueprint $table) {
$table->string('external_auth_id', 200)->default('');
$table->string('external_auth_id', 180)->default('');
$table->index('external_auth_id');
});
}

View File

@@ -37,8 +37,8 @@ class CreateBookshelvesTable extends Migration
Schema::create('bookshelves', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 200);
$table->string('slug', 200);
$table->string('name', 180);
$table->string('slug', 180);
$table->text('description');
$table->integer('created_by')->nullable()->default(null);
$table->integer('updated_by')->nullable()->default(null);

View File

@@ -15,7 +15,7 @@ class AddUserSlug extends Migration
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('slug', 250);
$table->string('slug', 180);
});
$slugMap = [];

View File

@@ -95,4 +95,18 @@ Theme::listen(ThemeEvents::APP_BOOT, function($app) {
'name' => 'Reddit',
], '\SocialiteProviders\Reddit\RedditExtendSocialite@handle');
});
```
In some cases you may need to customize the driver before it performs a redirect.
This can be done by providing a callback as a fourth parameter like so:
```php
Theme::addSocialDriver('reddit', [
'client_id' => 'abc123',
'client_secret' => 'def456789',
'name' => 'Reddit',
], '\SocialiteProviders\Reddit\RedditExtendSocialite@handle', function($driver) {
$driver->with(['prompt' => 'select_account']);
$driver->scopes(['open_id']);
});
```

1277
package-lock.json generated

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -33,7 +33,7 @@ return [
'book_delete' => 'تم حذف الكتاب',
'book_delete_notification' => 'تم حذف الكتاب بنجاح',
'book_sort' => 'تم سرد الكتاب',
'book_sort_notification' => 'تمت إعادة سرد الكتاب بنجاح',
'book_sort_notification' => 'أُعِيدَ سرد الكتاب بنجاح',
// Bookshelves
'bookshelf_create' => 'تم إنشاء رف الكتب',

View File

@@ -47,7 +47,7 @@ return [
'reset_password_success' => 'تمت استعادة كلمة المرور بنجاح.',
'email_reset_subject' => 'استعد كلمة المرور الخاصة بتطبيق :appName',
'email_reset_text' => 'تم إرسال هذه الرسالة بسبب تلقينا لطلب استعادة كلمة المرور الخاصة بحسابكم.',
'email_reset_not_requested' => 'إذا لم يتم طلب استعادة كلمة المرور من قبلكم, فلا حاجة لاتخاذ أية خطوات.',
'email_reset_not_requested' => 'إذا لم يتم طلب استعادة كلمة المرور من قبلكم، فلا حاجة لاتخاذ أية خطوات.',
// Email Confirmation
@@ -62,11 +62,11 @@ return [
'email_not_confirmed' => 'لم يتم تأكيد البريد الإلكتروني',
'email_not_confirmed_text' => 'لم يتم بعد تأكيد عنوان البريد الإلكتروني.',
'email_not_confirmed_click_link' => 'الرجاء الضغط على الرابط المرسل إلى بريدكم الإلكتروني بعد تسجيلكم.',
'email_not_confirmed_resend' => 'إذا لم يتم إيجاد الرسالة, بإمكانكم إعادة إرسال رسالة التأكيد عن طريق تعبئة النموذج أدناه.',
'email_not_confirmed_resend' => 'إذا لم يتم إيجاد الرسالة، بإمكانكم إعادة إرسال رسالة التأكيد عن طريق تعبئة النموذج أدناه.',
'email_not_confirmed_resend_button' => 'إعادة إرسال رسالة التأكيد',
// User Invite
'user_invite_email_subject' => 'تم دعوتك للإنضمام إلى صفحة الحالة الخاصة بـ :app_name!',
'user_invite_email_subject' => 'تمت دعوتك للانضمام إلى صفحة الحالة الخاصة بـ :app_name!',
'user_invite_email_greeting' => 'تم إنشاء حساب مستخدم لك على %site%.',
'user_invite_email_text' => 'انقر على الزر أدناه لتعيين كلمة مرور الحساب والحصول على الوصول:',
'user_invite_email_action' => 'كلمة سر المستخدم',

View File

@@ -42,20 +42,20 @@ return [
'fullscreen' => 'شاشة كاملة',
// Sort Options
'sort_options' => 'خيارات الترتيب',
'sort_direction_toggle' => 'الترتيب وفق الإتجاه',
'sort_options' => 'خيارات الفرز',
'sort_direction_toggle' => 'الفرز وفق الاتجاه',
'sort_ascending' => 'فرز تصاعدي',
'sort_descending' => 'فرز تنازلي',
'sort_name' => 'الاسم',
'sort_default' => 'Default',
'sort_default' => 'افتراضي',
'sort_created_at' => 'تاريخ الإنشاء',
'sort_updated_at' => 'تاريخ التحديث',
// Misc
'deleted_user' => 'حذف مستخدم',
'deleted_user' => 'المستخدم المحذوف',
'no_activity' => 'لا يوجد نشاط لعرضه',
'no_items' => 'لا توجد عناصر متوفرة',
'back_to_top' => 'العودة للبداية',
'back_to_top' => 'العودة إلى الأعلى',
'toggle_details' => 'عرض / إخفاء التفاصيل',
'toggle_thumbnails' => 'عرض / إخفاء الصور المصغرة',
'details' => 'التفاصيل',
@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'شريط التنقل',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'عرض القائمة',
'profile_menu' => 'قائمة ملف التعريف',
'view_profile' => 'عرض الملف الشخصي',
'edit_profile' => 'تعديل الملف الشخصي',
@@ -74,16 +74,16 @@ return [
// Layout tabs
'tab_info' => 'معلومات',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'تبويب: إظهار المعلومات الثانوية',
'tab_content' => 'المحتوى',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'تبويب: إظهار المحتوى الأساسي',
// Email Content
'email_action_help' => 'إذا واجهتكم مشكلة بضغط زر ":actionText" فبإمكانكم نسخ الرابط أدناه ولصقه بالمتصفح:',
'email_action_help' => 'إذا واجهتكم مشكلة عند ضغط زر ":actionText" فبإمكانكم نسخ الرابط أدناه ولصقه بالمتصفح:',
'email_rights' => 'جميع الحقوق محفوظة',
// Footer Link Options
// Not directly used but available for convenience to users.
'privacy_policy' => 'Privacy Policy',
'terms_of_service' => 'Terms of Service',
'privacy_policy' => 'سياسة الخصوصية',
'terms_of_service' => 'اتفاقية شروط الخدمة',
];

View File

@@ -15,7 +15,7 @@ return [
'image_load_more' => 'المزيد',
'image_image_name' => 'اسم الصورة',
'image_delete_used' => 'هذه الصورة مستخدمة بالصفحات أدناه.',
'image_delete_confirm_text' => 'هل أنت متأكد من أنك تريد حذف هذه الصورة ؟',
'image_delete_confirm_text' => 'هل أنت متأكد من أنك تريد حذف هذه الصورة؟',
'image_select_image' => 'تحديد الصورة',
'image_dropzone' => 'قم بإسقاط الصورة أو اضغط هنا للرفع',
'images_deleted' => 'تم حذف الصور',

View File

@@ -11,7 +11,7 @@ return [
'recently_updated_pages' => 'صفحات حُدثت مؤخراً',
'recently_created_chapters' => 'فصول أنشئت مؤخراً',
'recently_created_books' => 'كتب أنشئت مؤخراً',
'recently_created_shelves' => 'الأرفف المنشأة مؤخراً',
'recently_created_shelves' => 'أرفف أنشئت مؤخراً',
'recently_update' => 'حُدثت مؤخراً',
'recently_viewed' => 'عُرضت مؤخراً',
'recent_activity' => 'نشاطات حديثة',
@@ -28,8 +28,8 @@ return [
'my_recent_drafts' => 'مسوداتي الحديثة',
'my_recently_viewed' => 'ما عرضته مؤخراً',
'no_pages_viewed' => 'لم تستعرض أي صفحات',
'no_pages_recently_created' => 'لم يتم إنشاء أي صفحات مؤخراً',
'no_pages_recently_updated' => 'لم يتم تحديث أي صفحات مؤخراً',
'no_pages_recently_created' => 'لم تنشأ أي صفحات مؤخراً',
'no_pages_recently_updated' => 'لم تُحدّث أي صفحات مؤخراً',
'export' => 'تصدير',
'export_html' => 'صفحة ويب',
'export_pdf' => 'ملف PDF',
@@ -37,7 +37,7 @@ return [
// Permissions and restrictions
'permissions' => 'الأذونات',
'permissions_intro' => 'في حال التفعيل, ستتم تبدية هذه الأذونات على أذونات الأدوار.',
'permissions_intro' => 'عند التفعيل، سوف تأخذ هذه الأذونات أولوية على أي صلاحية أخرى للدور.',
'permissions_enable' => 'تفعيل الأذونات المخصصة',
'permissions_save' => 'حفظ الأذونات',
'permissions_owner' => 'Owner',
@@ -55,8 +55,8 @@ return [
'search_exact_matches' => 'نتائج مطابقة تماماً',
'search_tags' => 'بحث الوسوم',
'search_options' => 'الخيارات',
'search_viewed_by_me' => 'تم استعراضها من قبلي',
'search_not_viewed_by_me' => 'لم يتم استعراضها من قبلي',
'search_viewed_by_me' => 'استعرضت من قبلي',
'search_not_viewed_by_me' => 'لم تستعرض من قبلي',
'search_permissions_set' => 'حزمة الأذونات',
'search_created_by_me' => 'أنشئت بواسطتي',
'search_updated_by_me' => 'حُدثت بواسطتي',
@@ -74,24 +74,24 @@ return [
'shelves' => 'الأرفف',
'x_shelves' => ':count رف|:count أرفف',
'shelves_long' => 'أرفف الكتب',
'shelves_empty' => 'لم يتم إنشاء أي أرفف',
'shelves_empty' => 'لم ينشأ أي رف',
'shelves_create' => 'إنشاء رف جديد',
'shelves_popular' => 'أرفف شعبية',
'shelves_popular' => 'أرفف رائجة',
'shelves_new' => 'أرفف جديدة',
'shelves_new_action' => 'رف جديد',
'shelves_popular_empty' => 'ستظهر هنا الأرفف الأكثر رواجًا.',
'shelves_new_empty' => 'ستظهر هنا الأرفف التي تم إنشاؤها مؤخرًا.',
'shelves_new_empty' => 'ستظهر هنا الأرفف التي أنشئت مؤخرًا.',
'shelves_save' => 'حفظ الرف',
'shelves_books' => 'كتب على هذا الرف',
'shelves_add_books' => 'إضافة كتب لهذا الرف',
'shelves_drag_books' => 'اسحب الكتب هنا لإضافتها لهذا الرف',
'shelves_drag_books' => 'اسحب الكتب هنا لإضافتها في هذا الرف',
'shelves_empty_contents' => 'لا توجد كتب مخصصة لهذا الرف',
'shelves_edit_and_assign' => 'تحرير الرف لإدراج كتب',
'shelves_edit_named' => 'تحرير رف الكتب: الاسم',
'shelves_edit_named' => 'تحرير رف الكتب :name',
'shelves_edit' => 'تحرير رف الكتب',
'shelves_delete' => 'حذف رف الكتب',
'shelves_delete_named' => 'حذف رف الكتب: الاسم',
'shelves_delete_explain' => "سيؤدي هذا إلى حذف رف الكتب مع الاسم ':المُسمى به'. لن يتم حذف الكتب المتضمنة.",
'shelves_delete_named' => 'حذف رف الكتب :name',
'shelves_delete_explain' => "سيؤدي هذا إلى حذف رف الكتب المسمى ':name'، ولن تحذف الكتب المتضمنة فيه.",
'shelves_delete_confirmation' => 'هل أنت متأكد من أنك تريد حذف هذا الرف؟',
'shelves_permissions' => 'أذونات رف الكتب',
'shelves_permissions_updated' => 'تم تحديث أذونات رف الكتب',
@@ -99,7 +99,7 @@ return [
'shelves_copy_permissions_to_books' => 'نسخ أذونات الوصول إلى الكتب',
'shelves_copy_permissions' => 'نسخ الأذونات',
'shelves_copy_permissions_explain' => 'سيؤدي هذا إلى تطبيق إعدادات الأذونات الحالية لهذا الرف على جميع الكتب المتضمنة فيه. قبل التفعيل، تأكد من حفظ أي تغييرات في أذونات هذا الرف.',
'shelves_copy_permission_success' => 'تم نسخ أذونات رف الكتب إلى: عد الكتب',
'shelves_copy_permission_success' => 'تم نسخ أذونات رف الكتب إلى :count books',
// Books
'book' => 'كتاب',
@@ -115,7 +115,7 @@ return [
'books_create' => 'إنشاء كتاب جديد',
'books_delete' => 'حذف الكتاب',
'books_delete_named' => 'حذف كتاب :bookName',
'books_delete_explain' => 'سيتم حذف كتاب \':bookName\'. ستتم إزالة جميع الفصول والصفحات.',
'books_delete_explain' => 'سيتم حذف كتاب \':bookName\'، وأيضا حذف جميع الفصول والصفحات.',
'books_delete_confirmation' => 'تأكيد حذف الكتاب؟',
'books_edit' => 'تعديل الكتاب',
'books_edit_named' => 'تعديل كتاب :bookName',
@@ -215,7 +215,7 @@ return [
'pages_revisions_created_by' => 'أنشئ بواسطة',
'pages_revisions_date' => 'تاريخ المراجعة',
'pages_revisions_number' => '#',
'pages_revisions_numbered' => 'مراجعة #: رقم تعريفي',
'pages_revisions_numbered' => 'مراجعة #:id',
'pages_revisions_numbered_changes' => 'مراجعة #: رقم تعريفي التغييرات',
'pages_revisions_changelog' => 'سجل التعديل',
'pages_revisions_changes' => 'التعديلات',
@@ -228,7 +228,7 @@ return [
'pages_permissions_active' => 'أذونات الصفحة مفعلة',
'pages_initial_revision' => 'نشر مبدئي',
'pages_initial_name' => 'صفحة جديدة',
'pages_editing_draft_notification' => 'جار تعديل مسودة لم يتم حفظها من :timeDiff.',
'pages_editing_draft_notification' => 'جارٍ تعديل مسودة لم يتم حفظها من :timeDiff.',
'pages_draft_edited_notification' => 'تم تحديث هذه الصفحة منذ ذلك الوقت. من الأفضل التخلص من هذه المسودة.',
'pages_draft_edit_active' => [
'start_a' => ':count من المستخدمين بدأوا بتعديل هذه الصفحة',
@@ -237,7 +237,7 @@ return [
'time_b' => 'في آخر :minCount دقيقة/دقائق',
'message' => 'وقت البدء: احرص على عدم الكتابة فوق تحديثات بعضنا البعض!',
],
'pages_draft_discarded' => 'تم التخلص من المسودة. تم تحديث المحرر بمحتوى الصفحة الحالي',
'pages_draft_discarded' => 'تم التخلص من المسودة وتحديث المحرر بمحتوى الصفحة الحالي',
'pages_specific' => 'صفحة محددة',
'pages_is_template' => 'قالب الصفحة',
@@ -255,14 +255,14 @@ return [
'tags_remove' => 'إزالة هذه العلامة',
'attachments' => 'المرفقات',
'attachments_explain' => 'ارفع بعض الملفات أو أرفق بعض الروابط لعرضها بصفحتك. ستكون الملفات والروابط معروضة في الشريط الجانبي للصفحة.',
'attachments_explain_instant_save' => 'سيتم حفظ التغييرات هنا بلحظتها',
'attachments_explain_instant_save' => 'سيتم حفظ التغييرات هنا آنيا.',
'attachments_items' => 'العناصر المرفقة',
'attachments_upload' => 'رفع ملف',
'attachments_link' => 'إرفاق رابط',
'attachments_set_link' => 'تحديد الرابط',
'attachments_delete' => 'هل أنت متأكد من أنك تريد حذف هذا المرفق؟',
'attachments_dropzone' => 'أسقط الملفات أو اضغط هنا لإرفاق ملف',
'attachments_no_files' => 'لم يتم رفع أي ملفات',
'attachments_no_files' => 'لم تُرفع أي ملفات',
'attachments_explain_link' => 'بالإمكان إرفاق رابط في حال عدم تفضيل رفع ملف. قد يكون الرابط لصفحة أخرى أو لملف في أحد خدمات التخزين السحابي.',
'attachments_link_name' => 'اسم الرابط',
'attachment_link' => 'رابط المرفق',
@@ -287,7 +287,7 @@ return [
'templates_prepend_content' => 'بادئة محتوى الصفحة',
// Profile View
'profile_user_for_x' => 'المستخدم لـ : الوقت',
'profile_user_for_x' => 'المستخدم لـ :time',
'profile_created_content' => 'المحتوى المنشأ',
'profile_not_created_pages' => 'لم يتم إنشاء أي صفحات بواسطة :userName',
'profile_not_created_chapters' => 'لم يتم إنشاء أي فصول بواسطة :userName',
@@ -299,7 +299,7 @@ return [
'comments' => 'تعليقات',
'comment_add' => 'إضافة تعليق',
'comment_placeholder' => 'ضع تعليقاً هنا',
'comment_count' => '{0} ا توجد تعليقات|{1} تعليق واحد|{2} تعليقان|[3,*] :count تعليقات',
'comment_count' => '{0} لا توجد تعليقات|{1} تعليق واحد|{2} تعليقان[3,*] :count تعليقات',
'comment_save' => 'حفظ التعليق',
'comment_saving' => 'جار حفظ التعليق...',
'comment_deleting' => 'جار حذف التعليق...',
@@ -313,8 +313,8 @@ return [
'comment_in_reply_to' => 'رداً على :commentId',
// Revision
'revision_delete_confirm' => 'هل أنت متأكد من أنك تريد حذف هذا الإصدار؟',
'revision_restore_confirm' => 'هل أنت متأكد من أنك تريد استعادة هذا الإصدار؟ سيتم استبدال محتوى الصفحة الحالية.',
'revision_delete_success' => 'تم حذف الإصدار',
'revision_cannot_delete_latest' => 'لايمكن حذف آخر إصدار.'
'revision_delete_confirm' => 'هل أنت متأكد من أنك تريد حذف هذه المراجعة؟',
'revision_restore_confirm' => 'هل أنت متأكد من أنك تريد استعادة هذه المراجعة؟ سيتم استبدال محتوى الصفحة الحالية.',
'revision_delete_success' => 'تم حذف المراجعة',
'revision_cannot_delete_latest' => 'لايمكن حذف آخر مراجعة.'
];

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'لم يتم العثور على الصفحة',
'sorry_page_not_found' => 'عفواً, لا يمكن العثور على الصفحة التي تبحث عنها.',
'sorry_page_not_found_permission_warning' => 'إذا كنت تتوقع أن تكون هذه الصفحة موجودة، قد لا يكون لديك تصريح بمشاهدتها.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'العودة للصفحة الرئيسية',
'error_occurred' => 'حدث خطأ',
'app_down' => ':appName لا يعمل حالياً',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Страницата не е намерена',
'sorry_page_not_found' => 'Страницата, която търсите не може да бъде намерена.',
'sorry_page_not_found_permission_warning' => 'Ако смятате, че тази страница съществува, най-вероятно нямате право да я преглеждате.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Назад към Начало',
'error_occurred' => 'Възникна грешка',
'app_down' => ':appName не е достъпно в момента',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Stranica nije pronađena',
'sorry_page_not_found' => 'Stranica koju ste tražili nije pronađena.',
'sorry_page_not_found_permission_warning' => 'Ako ste očekivali da ova stranica postoji, možda nemate privilegije da joj pristupite.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Nazad na početnu stranu',
'error_occurred' => 'Desila se greška',
'app_down' => ':appName trenutno nije u funkciji',

View File

@@ -6,8 +6,8 @@
*/
return [
'failed' => 'Les credencials no coincideixen amb les que tenim emmagatzemades.',
'throttle' => 'Massa intents d\'iniciar la sessió. Torneu-ho a provar d\'aquí a :seconds segons.',
'failed' => 'Les credencials no coincideixen amb les que hi ha emmagatzemades.',
'throttle' => 'Massa intents d\'inici de sessió. Torna-ho a provar d\'aquí a :seconds segons.',
// Login & Register
'sign_up' => 'Registra-m\'hi',
@@ -28,7 +28,7 @@ return [
'create_account' => 'Crea el compte',
'already_have_account' => 'Ja teniu un compte?',
'dont_have_account' => 'No teniu cap compte?',
'social_login' => 'Inici de sessió social',
'social_login' => 'Inici de sessió amb xarxes social',
'social_registration' => 'Registre social',
'social_registration_text' => 'Registreu-vos i inicieu la sessió fent servir un altre servei.',

View File

@@ -7,7 +7,7 @@ return [
// Buttons
'cancel' => 'Cancel·la',
'confirm' => 'D\'acord',
'back' => 'Endarrere',
'back' => 'Enrere',
'save' => 'Desa',
'continue' => 'Continua',
'select' => 'Selecciona',
@@ -47,7 +47,7 @@ return [
'sort_ascending' => 'Ordre ascendent',
'sort_descending' => 'Ordre descendent',
'sort_name' => 'Nom',
'sort_default' => 'Default',
'sort_default' => 'Per defecte',
'sort_created_at' => 'Data de creació',
'sort_updated_at' => 'Data d\'actualització',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'No s\'ha trobat la pàgina',
'sorry_page_not_found' => 'No hem pogut trobar la pàgina que cerqueu.',
'sorry_page_not_found_permission_warning' => 'Si esperàveu que existís, és possible que no tingueu permisos per a veure-la.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Torna a l\'inici',
'error_occurred' => 'S\'ha produït un error',
'app_down' => ':appName està fora de servei en aquests moments',

View File

@@ -7,9 +7,9 @@
return [
'password' => 'Les contrasenyes han de tenir com a mínim vuit caràcters i la confirmació ha de coincidir.',
'user' => "No s'ha trobat cap usuari amb aquesta adreça electrònica.",
'token' => 'El testimoni de reinicialització de la contrasenya no és vàlid per a aquesta adreça electrònica.',
'sent' => 'Us hem enviat un enllaç per a restablir la contrasenya!',
'reset' => 'S\'ha restablert la vostra contrasenya!',
'user' => "No s'ha trobat cap usuari amb aquest correu electrònic.",
'token' => 'El token de restabliment de contrasenya no és vàlid per aquest correu electrònic.',
'sent' => 'T\'hem enviat un enllaç per a restablir la contrasenya!',
'reset' => 'S\'ha restablert la teva contrasenya!',
];

View File

@@ -8,8 +8,8 @@
return [
// Standard laravel validation lines
'accepted' => 'Cal que accepteu el camp :attribute.',
'active_url' => 'El camp :attribute no és un URL vàlid.',
'accepted' => 'Cal que acceptis :attribute.',
'active_url' => 'L\':attribute no és un URL vàlid.',
'after' => 'El camp :attribute ha de ser una data posterior a :date.',
'alpha' => 'El camp :attribute només pot contenir lletres.',
'alpha_dash' => 'El camp :attribute només pot contenir lletres, números, guions i guions baixos.',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Stránka nenalezena',
'sorry_page_not_found' => 'Omlouváme se, ale stránka, kterou hledáte nebyla nalezena.',
'sorry_page_not_found_permission_warning' => 'Pokud očekáváte, že by stránka měla existovat, možná jen nemáte oprávnění pro její zobrazení.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Návrat domů',
'error_occurred' => 'Nastala chyba',
'app_down' => ':appName je momentálně vypnutá',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Siden blev ikke fundet',
'sorry_page_not_found' => 'Beklager, siden du leder efter blev ikke fundet.',
'sorry_page_not_found_permission_warning' => 'Hvis du forventede, at denne side skulle eksistere, har du muligvis ikke tilladelse til at se den.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Gå tilbage til hjem',
'error_occurred' => 'Der opstod en fejl',
'app_down' => ':appName er nede lige nu',

View File

@@ -47,7 +47,7 @@ return [
'sort_ascending' => 'Aufsteigend sortieren',
'sort_descending' => 'Absteigend sortieren',
'sort_name' => 'Name',
'sort_default' => 'Default',
'sort_default' => 'Standard',
'sort_created_at' => 'Erstellungsdatum',
'sort_updated_at' => 'Aktualisierungsdatum',
@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'Brotkrumen',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Header-Menü erweitern',
'profile_menu' => 'Profilmenü',
'view_profile' => 'Profil ansehen',
'edit_profile' => 'Profil bearbeiten',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Info',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Tab: Sekundäre Informationen anzeigen',
'tab_content' => 'Inhalt',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Tab: Hauptinhalt anzeigen',
// Email Content
'email_action_help' => 'Sollte es beim Anklicken der Schaltfläche ":action_text" Probleme geben, öffnen Sie folgende URL in Ihrem Browser:',

View File

@@ -60,7 +60,7 @@ return [
'search_permissions_set' => 'Berechtigungen gesetzt',
'search_created_by_me' => 'Von mir erstellt',
'search_updated_by_me' => 'Von mir aktualisiert',
'search_owned_by_me' => 'Owned by me',
'search_owned_by_me' => 'Besitzt von mir',
'search_date_options' => 'Datums Optionen',
'search_updated_before' => 'Aktualisiert vor',
'search_updated_after' => 'Aktualisiert nach',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Seite nicht gefunden',
'sorry_page_not_found' => 'Entschuldigung. Die Seite, die Sie angefordert haben, wurde nicht gefunden.',
'sorry_page_not_found_permission_warning' => 'Wenn Sie erwartet haben, dass diese Seite existiert, haben Sie möglicherweise nicht die Berechtigung, sie anzuzeigen.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Zurück zur Startseite',
'error_occurred' => 'Es ist ein Fehler aufgetreten',
'app_down' => ':appName befindet sich aktuell im Wartungsmodus.',

View File

@@ -40,7 +40,7 @@ Wenn Sie nicht eingeben, wird die Anwendung auf die Standardfarbe zurückgesetzt
'app_homepage_desc' => 'Wählen Sie eine Seite als Startseite aus, die statt der Standardansicht angezeigt werden soll. Seitenberechtigungen werden für die ausgewählten Seiten ignoriert.',
'app_homepage_select' => 'Wählen Sie eine Seite aus',
'app_footer_links' => 'Fußzeilen-Links',
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
'app_footer_links_desc' => 'Fügen Sie Links hinzu, die innerhalb der Seitenfußzeile angezeigt werden. Diese werden am unteren Ende der meisten Seiten angezeigt, einschließlich derjenigen, die keinen Login benötigen. Sie können die Bezeichnung "trans::<key>" verwenden, um systemdefinierte Übersetzungen zu verwenden. Beispiel: Mit "trans::common.privacy_policy" wird der übersetzte Text "Privacy Policy" bereitgestellt, und "trans::common.terms_of_service" liefert den übersetzten Text "Terms of Service".',
'app_footer_links_label' => 'Link-Label',
'app_footer_links_url' => 'Link-URL',
'app_footer_links_add' => 'Fußzeilen-Link hinzufügen',
@@ -235,7 +235,7 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
'ar' => 'العربية',
'bg' => 'Bulgarisch',
'bs' => 'Bosanski',
'ca' => 'Català',
'ca' => 'Katalanisch',
'cs' => 'Česky',
'da' => 'Dänisch',
'de' => 'Deutsch (Sie)',

View File

@@ -47,7 +47,7 @@ return [
'sort_ascending' => 'Aufsteigend sortieren',
'sort_descending' => 'Absteigend sortieren',
'sort_name' => 'Name',
'sort_default' => 'Default',
'sort_default' => 'Standard',
'sort_created_at' => 'Erstellungsdatum',
'sort_updated_at' => 'Aktualisierungsdatum',
@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'Brotkrumen',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Header-Menü erweitern',
'profile_menu' => 'Profilmenü',
'view_profile' => 'Profil ansehen',
'edit_profile' => 'Profil bearbeiten',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Info',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Tab: Sekundäre Informationen anzeigen',
'tab_content' => 'Inhalt',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Tab: Hauptinhalt anzeigen',
// Email Content
'email_action_help' => 'Sollte es beim Anklicken der Schaltfläche ":action_text" Probleme geben, öffne die folgende URL in Deinem Browser:',
@@ -84,6 +84,6 @@ return [
// Footer Link Options
// Not directly used but available for convenience to users.
'privacy_policy' => 'Datenschutzbestimmungen',
'privacy_policy' => 'Datenschutzerklärung',
'terms_of_service' => 'Allgemeine Geschäftsbedingungen',
];

View File

@@ -60,7 +60,7 @@ return [
'search_permissions_set' => 'Berechtigungen gesetzt',
'search_created_by_me' => 'Von mir erstellt',
'search_updated_by_me' => 'Von mir aktualisiert',
'search_owned_by_me' => 'Owned by me',
'search_owned_by_me' => 'Besitzt von mir',
'search_date_options' => 'Datums Optionen',
'search_updated_before' => 'Aktualisiert vor',
'search_updated_after' => 'Aktualisiert nach',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Seite nicht gefunden',
'sorry_page_not_found' => 'Entschuldigung. Die Seite, die Du angefordert hast, wurde nicht gefunden.',
'sorry_page_not_found_permission_warning' => 'Wenn du erwartet hast, dass diese Seite existiert, hast du möglicherweise nicht die Berechtigung, sie anzuzeigen.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Zurück zur Startseite',
'error_occurred' => 'Es ist ein Fehler aufgetreten',
'app_down' => ':appName befindet sich aktuell im Wartungsmodus.',

View File

@@ -40,10 +40,10 @@ Wenn Du nichts eingibst, wird die Anwendung auf die Standardfarbe zurückgesetzt
'app_homepage_desc' => 'Wähle eine Seite als Startseite aus, die statt der Standardansicht angezeigt werden soll. Seitenberechtigungen werden für die ausgewählten Seiten ignoriert.',
'app_homepage_select' => 'Wählen Sie eine Seite aus',
'app_footer_links' => 'Fußzeilen-Links',
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
'app_footer_links_desc' => 'Fügen Sie Links hinzu, die innerhalb der Seitenfußzeile angezeigt werden. Diese werden am unteren Ende der meisten Seiten angezeigt, einschließlich derjenigen, die keinen Login benötigen. Sie können die Bezeichnung "trans::<key>" verwenden, um systemdefinierte Übersetzungen zu verwenden. Beispiel: Mit "trans::common.privacy_policy" wird der übersetzte Text "Privacy Policy" bereitgestellt, und "trans::common.terms_of_service" liefert den übersetzten Text "Terms of Service".',
'app_footer_links_label' => 'Link-Label',
'app_footer_links_url' => 'Link-URL',
'app_footer_links_add' => 'Fußzeilen-Link hinzufügen',
'app_footer_links_add' => 'Fußzeilenlink hinzufügen',
'app_disable_comments' => 'Kommentare deaktivieren',
'app_disable_comments_toggle' => 'Kommentare deaktivieren',
'app_disable_comments_desc' => 'Deaktiviert Kommentare über alle Seiten in der Anwendung. Vorhandene Kommentare werden nicht angezeigt.',
@@ -235,7 +235,7 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
'ar' => 'العربية',
'bg' => 'Bulgarisch',
'bs' => 'Bosanski',
'ca' => 'Català',
'ca' => 'Katalanisch',
'cs' => 'Česky',
'da' => 'Dänisch',
'de' => 'Deutsch (Sie)',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Page Not Found',
'sorry_page_not_found' => 'Sorry, The page you were looking for could not be found.',
'sorry_page_not_found_permission_warning' => 'If you expected this page to exist, you might not have permission to view it.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Return to home',
'error_occurred' => 'An Error Occurred',
'app_down' => ':appName is down right now',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Página no encontrada',
'sorry_page_not_found' => 'Lo sentimos, la página a la que intenta acceder no pudo ser encontrada.',
'sorry_page_not_found_permission_warning' => 'Si esperaba que esta página existiera, puede que no tenga permiso para verla.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Volver a la página de inicio',
'error_occurred' => 'Ha ocurrido un error',
'app_down' => 'La aplicación :appName se encuentra caída en este momento',

View File

@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'Miga de Pan',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Expandir el Menú de Cabecera',
'profile_menu' => 'Menu del Perfil',
'view_profile' => 'Ver Perfil',
'edit_profile' => 'Editar Perfil',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Información',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Pestaña: Mostrar Información Secundaria',
'tab_content' => 'Contenido',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Pestaña: Mostrar Contenido Primario',
// Email Content
'email_action_help' => 'Si está teniendo problemas haga click en el botón ":actionText", copie y pegue la siguiente URL en su navegador web:',

View File

@@ -281,7 +281,7 @@ return [
'attachments_link_attached' => 'Enlace agregado exitosamente a la página',
'templates' => 'Plantillas',
'templates_set_as_template' => 'La Página es una plantilla',
'templates_explain_set_as_template' => 'Puede establecer esta página como plantilla para que el contenido pueda utilizarse para al crear otras páginas. Otris usuarios podrán utilizar esta plantilla si tienen permisos para ver de esta página.',
'templates_explain_set_as_template' => 'Puede establecer esta página como plantilla para que el contenido pueda utilizarse al crear otras páginas. Otros usuarios podrán utilizar esta plantilla si tienen permisos para ver de esta página.',
'templates_replace_content' => 'Reemplazar el contenido de la página',
'templates_append_content' => 'Incorporar al fina del contenido de la página',
'templates_prepend_content' => 'Incorporar al principio del contenido de la página',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Página no encontrada',
'sorry_page_not_found' => 'Lo sentimos, la página que intenta acceder no pudo ser encontrada.',
'sorry_page_not_found_permission_warning' => 'Si esperaba que esta página existiera, puede que no tenga permiso para verla.',
'image_not_found' => 'No se encuentra la imagen',
'image_not_found_subtitle' => 'Lo siento, no se pudo encontrar la imagen que busca.',
'image_not_found_details' => 'Si esperaba que esta imagen exista es probable que se haya eliminado.',
'return_home' => 'Volver al home',
'error_occurred' => 'Ha ocurrido un error',
'app_down' => 'La aplicación :appName se encuentra caída en este momento',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Page Not Found',
'sorry_page_not_found' => 'Sorry, The page you were looking for could not be found.',
'sorry_page_not_found_permission_warning' => 'If you expected this page to exist, you might not have permission to view it.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Return to home',
'error_occurred' => 'An Error Occurred',
'app_down' => ':appName is down right now',

View File

@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'Fil d\'Ariane',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Développer le menu',
'profile_menu' => 'Menu du profil',
'view_profile' => 'Voir le profil',
'edit_profile' => 'Modifier le profil',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Informations',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Onglet : Afficher les informations secondaires',
'tab_content' => 'Contenu',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Onglet : Afficher le contenu principal',
// Email Content
'email_action_help' => 'Si vous rencontrez des problèmes pour cliquer sur le bouton ":actionText", copiez et collez l\'adresse ci-dessous dans votre navigateur :',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Page non trouvée',
'sorry_page_not_found' => 'Désolé, cette page n\'a pas pu être trouvée.',
'sorry_page_not_found_permission_warning' => 'Si vous vous attendiez à ce que cette page existe, il se peut que vous n\'ayez pas l\'autorisation de la consulter.',
'image_not_found' => 'Image non trouvée',
'image_not_found_subtitle' => 'Désolé, l\'image que vous cherchez ne peut être trouvée.',
'image_not_found_details' => 'Si vous vous attendiez à ce que cette image existe, elle pourrait avoir été supprimée.',
'return_home' => 'Retour à l\'accueil',
'error_occurred' => 'Une erreur est survenue',
'app_down' => ':appName n\'est pas en service pour le moment',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'דף לא קיים',
'sorry_page_not_found' => 'מצטערים, הדף שחיפשת אינו קיים',
'sorry_page_not_found_permission_warning' => 'If you expected this page to exist, you might not have permission to view it.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'בחזרה לדף הבית',
'error_occurred' => 'התרחשה שגיאה',
'app_down' => ':appName כרגע אינו זמין',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Oldal nem található',
'sorry_page_not_found' => 'Sajnáljuk, a keresett oldal nem található.',
'sorry_page_not_found_permission_warning' => 'If you expected this page to exist, you might not have permission to view it.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Vissza a kezdőlapra',
'error_occurred' => 'Hiba örtént',
'app_down' => ':appName jelenleg nem üzemel',

View File

@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'Breadcrumb',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Perluas Menu Tajuk',
'profile_menu' => 'Profile Menu',
'view_profile' => 'Tampilkan profil',
'edit_profile' => 'Sunting Profil',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Informasi',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Tab Menampilkan Informasi Sekunder',
'tab_content' => 'Konten',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Tab Menampilkan Informasi Utama',
// Email Content
'email_action_help' => 'Jika Anda mengalami masalah saat mengklik tombol ":actionText", salin dan tempel URL di bawah ini ke browser web Anda:',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Halaman tidak ditemukan',
'sorry_page_not_found' => 'Maaf, Halaman yang Anda cari tidak dapat ditemukan.',
'sorry_page_not_found_permission_warning' => 'Jika Anda mengharapkan halaman ini ada, Anda mungkin tidak memiliki izin untuk melihatnya.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Kembali ke home',
'error_occurred' => 'Terjadi kesalahan',
'app_down' => ':appName sedang down sekarang',

View File

@@ -6,7 +6,7 @@
return [
// Pages
'page_create' => 'ha creato la pagina',
'page_create' => 'pagina creata',
'page_create_notification' => 'Pagina Creata Correttamente',
'page_update' => 'ha aggiornato la pagina',
'page_update_notification' => 'Pagina Aggiornata Correttamente',
@@ -45,5 +45,5 @@ return [
// Other
'commented_on' => 'ha commentato in',
'permissions_update' => 'updated permissions',
'permissions_update' => 'autorizzazioni aggiornate',
];

View File

@@ -19,7 +19,7 @@ return [
'description' => 'Descrizione',
'role' => 'Ruolo',
'cover_image' => 'Immagine di copertina',
'cover_image_description' => 'Questa immagine dovrebbe essere approssimatamente 440x250px.',
'cover_image_description' => 'Questa immagine dovrebbe essere approssimativamente 440x250px.',
// Actions
'actions' => 'Azioni',
@@ -33,7 +33,7 @@ return [
'copy' => 'Copia',
'reply' => 'Rispondi',
'delete' => 'Elimina',
'delete_confirm' => 'Confirm Deletion',
'delete_confirm' => 'Conferma Eliminazione',
'search' => 'Cerca',
'search_clear' => 'Pulisci Ricerca',
'reset' => 'Azzera',
@@ -47,7 +47,7 @@ return [
'sort_ascending' => 'Ordine Ascendente',
'sort_descending' => 'Ordine Discendente',
'sort_name' => 'Nome',
'sort_default' => 'Default',
'sort_default' => 'Predefinito',
'sort_created_at' => 'Data Creazione',
'sort_updated_at' => 'Data Aggiornamento',
@@ -65,8 +65,8 @@ return [
'breadcrumb' => 'Navigazione',
// Header
'header_menu_expand' => 'Expand Header Menu',
'profile_menu' => 'Menu del profilo',
'header_menu_expand' => 'Espandi Menù Intestazione',
'profile_menu' => 'Menù del profilo',
'view_profile' => 'Visualizza Profilo',
'edit_profile' => 'Modifica Profilo',
'dark_mode' => 'Modalità Scura',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Info',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Tab: Mostra Informazioni Secondarie',
'tab_content' => 'Contenuto',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Tab: Mostra Contenuto Principale',
// Email Content
'email_action_help' => 'Se hai problemi nel cliccare il pulsante ":actionText", copia e incolla lo URL sotto nel tuo browser:',
@@ -84,6 +84,6 @@ return [
// Footer Link Options
// Not directly used but available for convenience to users.
'privacy_policy' => 'Privacy Policy',
'terms_of_service' => 'Terms of Service',
'privacy_policy' => 'Norme sulla privacy',
'terms_of_service' => 'Condizioni del Servizio',
];

View File

@@ -15,7 +15,7 @@ return [
'image_load_more' => 'Carica Altre',
'image_image_name' => 'Nome Immagine',
'image_delete_used' => 'Questa immagine è usata nelle pagine elencate.',
'image_delete_confirm_text' => 'Are you sure you want to delete this image?',
'image_delete_confirm_text' => 'Sei sicuro di voler eliminare questa immagine?',
'image_select_image' => 'Seleziona Immagine',
'image_dropzone' => 'Rilascia immagini o clicca qui per caricarle',
'images_deleted' => 'Immagini Eliminate',

View File

@@ -22,7 +22,7 @@ return [
'meta_created_name' => 'Creato :timeLength da :user',
'meta_updated' => 'Aggiornato :timeLength',
'meta_updated_name' => 'Aggiornato :timeLength da :user',
'meta_owned_name' => 'Owned by :user',
'meta_owned_name' => 'Creati da :user',
'entity_select' => 'Selezione Entità',
'images' => 'Immagini',
'my_recent_drafts' => 'Bozze Recenti',
@@ -40,7 +40,7 @@ return [
'permissions_intro' => 'Una volta abilitati, questi permessi avranno la priorità su tutti gli altri.',
'permissions_enable' => 'Abilita Permessi Custom',
'permissions_save' => 'Salva Permessi',
'permissions_owner' => 'Owner',
'permissions_owner' => 'Proprietario',
// Search
'search_results' => 'Risultati Ricerca',
@@ -60,7 +60,7 @@ return [
'search_permissions_set' => 'Permessi impostati',
'search_created_by_me' => 'Creati da me',
'search_updated_by_me' => 'Aggiornati da me',
'search_owned_by_me' => 'Owned by me',
'search_owned_by_me' => 'Creati da me',
'search_date_options' => 'Opzioni Data',
'search_updated_before' => 'Aggiornati prima del',
'search_updated_after' => 'Aggiornati dopo il',
@@ -149,7 +149,7 @@ return [
'chapters_create' => 'Crea un nuovo capitolo',
'chapters_delete' => 'Elimina Capitolo',
'chapters_delete_named' => 'Elimina il capitolo :chapterName',
'chapters_delete_explain' => 'This will delete the chapter with the name \':chapterName\'. All pages that exist within this chapter will also be deleted.',
'chapters_delete_explain' => 'Procedendo si eliminerà il capitolo denominato \':chapterName\'. Anche le pagine in esso contenute saranno eliminate.',
'chapters_delete_confirm' => 'Sei sicuro di voler eliminare questo capitolo?',
'chapters_edit' => 'Elimina Capitolo',
'chapters_edit_named' => 'Modifica il capitolo :chapterName',
@@ -211,7 +211,7 @@ return [
'pages_revisions' => 'Versioni Pagina',
'pages_revisions_named' => 'Versioni della pagina :pageName',
'pages_revision_named' => 'Versione della pagina :pageName',
'pages_revision_restored_from' => 'Restored from #:id; :summary',
'pages_revision_restored_from' => 'Ripristinato da #:id; :summary',
'pages_revisions_created_by' => 'Creata Da',
'pages_revisions_date' => 'Data Versione',
'pages_revisions_number' => '#',
@@ -269,7 +269,7 @@ return [
'attachments_link_url' => 'Link al file',
'attachments_link_url_hint' => 'Url del sito o del file',
'attach' => 'Allega',
'attachments_insert_link' => 'Add Attachment Link to Page',
'attachments_insert_link' => 'Aggiungi Link Allegato alla Pagina',
'attachments_edit_file' => 'Modifica File',
'attachments_edit_file_name' => 'Nome File',
'attachments_edit_drop_upload' => 'Rilascia file o clicca qui per caricare e sovrascrivere',

View File

@@ -83,20 +83,23 @@ return [
'404_page_not_found' => 'Pagina Non Trovata',
'sorry_page_not_found' => 'La pagina che stavi cercando non è stata trovata.',
'sorry_page_not_found_permission_warning' => 'Se pensi che questa pagina possa esistere, potresti non avere i permessi per visualizzarla.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Ritorna alla home',
'error_occurred' => 'C\'è Stato un errore',
'app_down' => ':appName è offline',
'back_soon' => 'Ritornerà presto.',
// API errors
'api_no_authorization_found' => 'No authorization token found on the request',
'api_no_authorization_found' => 'Nessun token di autorizzazione trovato nella richiesta',
'api_bad_authorization_format' => 'Un token di autorizzazione è stato trovato nella richiesta, ma il formato sembra non corretto',
'api_user_token_not_found' => 'No matching API token was found for the provided authorization token',
'api_incorrect_token_secret' => 'The secret provided for the given used API token is incorrect',
'api_user_token_not_found' => 'Nessun token API valido è stato trovato nel token di autorizzazione fornito',
'api_incorrect_token_secret' => 'Il token segreto fornito per il token API utilizzato non è corretto',
'api_user_no_api_permission' => 'Il proprietario del token API utilizzato non ha il permesso di effettuare chiamate API',
'api_user_token_expired' => 'The authorization token used has expired',
'api_user_token_expired' => 'Il token di autorizzazione utilizzato è scaduto',
// Settings & Maintenance
'maintenance_test_email_failure' => 'Error thrown when sending a test email:',
'maintenance_test_email_failure' => 'Si è verificato un errore durante l\'invio di una e-mail di prova:',
];

View File

@@ -8,8 +8,8 @@ return [
'password' => 'La password deve avere almeno sei caratteri e corrispondere alla conferma.',
'user' => "Non possiamo trovare un utente per quella mail.",
'token' => 'The password reset token is invalid for this email address.',
'token' => 'Il token per reimpostare la password non è valido per questo indirizzo email.',
'sent' => 'Ti abbiamo inviato via mail il link per reimpostare la password!',
'reset' => 'La tua password è stata resettata!',
'reset' => 'La tua password è stata reimpostata!',
];

View File

@@ -37,11 +37,11 @@ return [
'app_homepage' => 'Homepage Applicazione',
'app_homepage_desc' => 'Seleziona una pagina da mostrare nella home anzichè quella di default. I permessi della pagina sono ignorati per quella selezionata.',
'app_homepage_select' => 'Seleziona una pagina',
'app_footer_links' => 'Footer Links',
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
'app_footer_links_label' => 'Link Label',
'app_footer_links_url' => 'Link URL',
'app_footer_links_add' => 'Add Footer Link',
'app_footer_links' => 'Link in basso',
'app_footer_links_desc' => 'Aggiungi link da mostrare in basso nel sito. Questi saranno visibili in fondo alla maggior parte delle pagine, incluse quelle che non richiedono un autenticazione. Puoi usare l\'etichetta "trans::<chiave>" per utilizzare le traduzioni implementate nella piattaforma. Esempio: usando "trans::common.privacy_policy" mostrerà il testo tradotto "Norme sulla privacy" e "trans::common.terms_of_service" mostrerà il testo tradotto "Condizioni del Servizio".',
'app_footer_links_label' => 'Etichetta del Link',
'app_footer_links_url' => 'URL del Link',
'app_footer_links_add' => 'Aggiungi Link in basso',
'app_disable_comments' => 'Disattiva commenti',
'app_disable_comments_toggle' => 'Disabilita commenti',
'app_disable_comments_desc' => 'Disabilita i commenti su tutte le pagine nell\'applicazione. I commenti esistenti non sono mostrati. ',
@@ -49,7 +49,7 @@ return [
// Color settings
'content_colors' => 'Colori del contenuto',
'content_colors_desc' => 'Imposta i colori per tutti gli elementi nella gerarchia della pagina. È raccomandato scegliere colori con una luminosità simile a quelli di default per una maggiore leggibilità.',
'bookshelf_color' => 'Colore delle libreria',
'bookshelf_color' => 'Colore della libreria',
'book_color' => 'Colore del libro',
'chapter_color' => 'Colore del capitolo',
'page_color' => 'Colore della Pagina',
@@ -61,7 +61,7 @@ return [
'reg_enable_toggle' => 'Abilita registrazione',
'reg_enable_desc' => 'Quando la registrazione è abilitata, l\utente sarà in grado di registrarsi all\'applicazione. Al momento della registrazione gli verrà associato un ruolo utente predefinito.',
'reg_default_role' => 'Ruolo predefinito dopo la registrazione',
'reg_enable_external_warning' => 'The option above is ignored while external LDAP or SAML authentication is active. User accounts for non-existing members will be auto-created if authentication, against the external system in use, is successful.',
'reg_enable_external_warning' => 'L\'opzione precedente viene ignorata se l\'autenticazione esterna tramite LDAP o SAML è attiva. Se l\'autenticazione (effettuata sul sistema esterno) sarà valida, gli account di eventuali membri non registrati saranno creati in automatico.',
'reg_email_confirmation' => 'Conferma Email',
'reg_email_confirmation_toggle' => 'Richiedi conferma email',
'reg_confirm_email_desc' => 'Se la restrizione per dominio è usata la conferma della mail sarà richiesta e la scelta ignorata.',
@@ -73,7 +73,7 @@ return [
'maint' => 'Manutenzione',
'maint_image_cleanup' => 'Pulizia Immagini',
'maint_image_cleanup_desc' => "Esegue la scansione del contenuto delle pagine e delle revisioni per verificare quali immagini e disegni sono attualmente in uso e quali immagini sono ridondanti. Assicurati di creare backup completo del database e delle immagini prima di eseguire la pulizia.",
'maint_delete_images_only_in_revisions' => 'Also delete images that only exist in old page revisions',
'maint_delete_images_only_in_revisions' => 'Elimina anche le immagini che esistono solo nelle vecchie revisioni della pagina',
'maint_image_cleanup_run' => 'Esegui Pulizia',
'maint_image_cleanup_warning' => ':count immagini potenzialmente inutilizzate sono state trovate. Sei sicuro di voler eliminare queste immagini?',
'maint_image_cleanup_success' => ':count immagini potenzialmente inutilizzate trovate e eliminate!',
@@ -91,35 +91,35 @@ return [
// Recycle Bin
'recycle_bin' => 'Cestino',
'recycle_bin_desc' => 'Here you can restore items that have been deleted or choose to permanently remove them from the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
'recycle_bin_deleted_item' => 'Deleted Item',
'recycle_bin_deleted_item' => 'Elimina Elemento',
'recycle_bin_deleted_by' => 'Cancellato da',
'recycle_bin_deleted_at' => 'Orario Cancellazione',
'recycle_bin_permanently_delete' => 'Elimina Definitivamente',
'recycle_bin_restore' => 'Ripristina',
'recycle_bin_contents_empty' => 'The recycle bin is currently empty',
'recycle_bin_contents_empty' => 'Al momento il cestino è vuoto',
'recycle_bin_empty' => 'Svuota Cestino',
'recycle_bin_empty_confirm' => 'This will permanently destroy all items in the recycle bin including content contained within each item. Are you sure you want to empty the recycle bin?',
'recycle_bin_destroy_confirm' => 'This action will permanently delete this item, along with any child elements listed below, from the system and you will not be able to restore this content. Are you sure you want to permanently delete this item?',
'recycle_bin_destroy_list' => 'Items to be Destroyed',
'recycle_bin_restore_list' => 'Items to be Restored',
'recycle_bin_empty_confirm' => 'Questa operazione cancellerà definitivamente tutti gli elementi presenti nel cestino, inclusi i contenuti relativi a ciascun elemento. Sei sicuro di voler svuotare il cestino?',
'recycle_bin_destroy_confirm' => 'Questa operazione eliminerà permanentemente questo elemento (insieme a tutti i relativi elementi elencati qui sotto) dal sistema e non sarà più possibile recuperarlo. Sei sicuro di voler eliminare permanentemente questo elemento?',
'recycle_bin_destroy_list' => 'Elementi da Eliminare definitivamente',
'recycle_bin_restore_list' => 'Elementi da Ripristinare',
'recycle_bin_restore_confirm' => 'This action will restore the deleted item, including any child elements, to their original location. If the original location has since been deleted, and is now in the recycle bin, the parent item will also need to be restored.',
'recycle_bin_restore_deleted_parent' => 'The parent of this item has also been deleted. These will remain deleted until that parent is also restored.',
'recycle_bin_destroy_notification' => 'Deleted :count total items from the recycle bin.',
'recycle_bin_restore_notification' => 'Restored :count total items from the recycle bin.',
'recycle_bin_restore_deleted_parent' => 'L\'elemento padre di questo elemento è stato eliminato. Questo elemento rimarrà eliminato fino a che l\'elemento padre non sarà ripristinato.',
'recycle_bin_destroy_notification' => 'Eliminati :count elementi dal cestino.',
'recycle_bin_restore_notification' => 'Ripristinati :count elementi dal cestino.',
// Audit Log
'audit' => 'Audit Log',
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
'audit_event_filter' => 'Event Filter',
'audit_event_filter_no_filter' => 'No Filter',
'audit_deleted_item' => 'Deleted Item',
'audit_deleted_item_name' => 'Name: :name',
'audit' => 'Registro di Controllo',
'audit_desc' => 'Questo registro di controllo mostra la lista delle attività registrate dal sistema. Questa lista, a differenza di altre liste del sistema a cui vengono applicate dei filtri, è integrale.',
'audit_event_filter' => 'Filtra Eventi',
'audit_event_filter_no_filter' => 'Nessun Filtro',
'audit_deleted_item' => 'Elimina Elemento',
'audit_deleted_item_name' => 'Nome: :name',
'audit_table_user' => 'Utente',
'audit_table_event' => 'Evento',
'audit_table_related' => 'Related Item or Detail',
'audit_table_date' => 'Activity Date',
'audit_date_from' => 'Date Range From',
'audit_date_to' => 'Date Range To',
'audit_table_related' => 'Elemento o Dettaglio correlato',
'audit_table_date' => 'Data attività',
'audit_date_from' => 'Dalla data',
'audit_date_to' => 'Alla data',
// Role Settings
'roles' => 'Ruoli',
@@ -143,7 +143,7 @@ return [
'role_manage_entity_permissions' => 'Gestire tutti i permessi di libri, capitoli e pagine',
'role_manage_own_entity_permissions' => 'Gestire i permessi sui propri libri, capitoli e pagine',
'role_manage_page_templates' => 'Gestisci template pagine',
'role_access_api' => 'Access system API',
'role_access_api' => 'API sistema d\'accesso',
'role_manage_settings' => 'Gestire impostazioni app',
'role_asset' => 'Permessi Entità',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
@@ -162,7 +162,7 @@ return [
'user_profile' => 'Profilo Utente',
'users_add_new' => 'Aggiungi Nuovo Utente',
'users_search' => 'Cerca Utenti',
'users_latest_activity' => 'Latest Activity',
'users_latest_activity' => 'Ultima Attività',
'users_details' => 'Dettagli Utente',
'users_details_desc' => 'Imposta un nome e un indirizzo email per questo utente. L\'indirizzo email verrà utilizzato per accedere all\'applicazione.',
'users_details_desc_no_email' => 'Imposta un nome per questo utente così gli altri possono riconoscerlo.',
@@ -180,7 +180,7 @@ return [
'users_delete_named' => 'Elimina l\'utente :userName',
'users_delete_warning' => 'Questo eliminerà completamente l\'utente \':userName\' dal sistema.',
'users_delete_confirm' => 'Sei sicuro di voler eliminare questo utente?',
'users_migrate_ownership' => 'Migrate Ownership',
'users_migrate_ownership' => 'Cambia Proprietario',
'users_migrate_ownership_desc' => 'Select a user here if you want another user to become the owner of all items currently owned by this user.',
'users_none_selected' => 'Nessun utente selezionato',
'users_delete_success' => 'Utente rimosso con successo',
@@ -197,11 +197,11 @@ return [
'users_social_disconnect' => 'Disconnetti Account',
'users_social_connected' => 'L\'account :socialAccount è stato connesso correttamente al tuo profilo.',
'users_social_disconnected' => 'L\'account :socialAccount è stato disconnesso correttamente dal tuo profilo.',
'users_api_tokens' => 'API Tokens',
'users_api_tokens' => 'Token API',
'users_api_tokens_none' => 'No API tokens have been created for this user',
'users_api_tokens_create' => 'Crea Token',
'users_api_tokens_expires' => 'Scade',
'users_api_tokens_docs' => 'API Documentation',
'users_api_tokens_docs' => 'Documentazione API',
// API Tokens
'user_api_token_create' => 'Crea Token API',
@@ -210,17 +210,17 @@ return [
'user_api_token_expiry' => 'Data di scadenza',
'user_api_token_expiry_desc' => 'Set a date at which this token expires. After this date, requests made using this token will no longer work. Leaving this field blank will set an expiry 100 years into the future.',
'user_api_token_create_secret_message' => 'Immediately after creating this token a "Token ID" & "Token Secret" will be generated and displayed. The secret will only be shown a single time so be sure to copy the value to somewhere safe and secure before proceeding.',
'user_api_token_create_success' => 'API token successfully created',
'user_api_token_update_success' => 'API token successfully updated',
'user_api_token_create_success' => 'Token API creato correttamente',
'user_api_token_update_success' => 'Token API aggiornato correttamente',
'user_api_token' => 'Token API',
'user_api_token_id' => 'Token ID',
'user_api_token_id_desc' => 'This is a non-editable system generated identifier for this token which will need to be provided in API requests.',
'user_api_token_secret' => 'Token Secret',
'user_api_token_secret' => 'Token Segreto',
'user_api_token_secret_desc' => 'This is a system generated secret for this token which will need to be provided in API requests. This will only be displayed this one time so copy this value to somewhere safe and secure.',
'user_api_token_created' => 'Token Aggiornato :timeAgo',
'user_api_token_updated' => 'Token Aggiornato :timeAgo',
'user_api_token_delete' => 'Elimina Token',
'user_api_token_delete_warning' => 'This will fully delete this API token with the name \':tokenName\' from the system.',
'user_api_token_delete_warning' => 'Questa operazione eliminerà irreversibilmente dal sistema il token API denominato \':tokenName\'.',
'user_api_token_delete_confirm' => 'Sei sicuri di voler eliminare questo token API?',
'user_api_token_delete_success' => 'Token API eliminato correttamente',
@@ -232,7 +232,7 @@ return [
'ar' => 'العربية',
'bg' => 'Bǎlgarski',
'bs' => 'Bosanski',
'ca' => 'Català',
'ca' => 'Catalano',
'cs' => 'Česky',
'da' => 'Danese',
'de' => 'Deutsch (Sie)',

View File

@@ -89,7 +89,7 @@ return [
'required_without' => 'Il campo :attribute è richiesto quando :values non è presente.',
'required_without_all' => 'Il campo :attribute è richiesto quando nessuno dei :values sono presenti.',
'same' => ':attribute e :other devono corrispondere.',
'safe_url' => 'The provided link may not be safe.',
'safe_url' => 'Il link inserito potrebbe non essere sicuro.',
'size' => [
'numeric' => 'Il campo :attribute deve essere :size.',
'file' => 'Il campo :attribute deve essere :size kilobytes.',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'ページが見つかりません',
'sorry_page_not_found' => 'ページを見つけることができませんでした。',
'sorry_page_not_found_permission_warning' => 'If you expected this page to exist, you might not have permission to view it.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'ホームに戻る',
'error_occurred' => 'エラーが発生しました',
'app_down' => ':appNameは現在停止しています',

View File

@@ -12,18 +12,18 @@ return [
'settings_save_success' => '設定を保存しました',
// App Settings
'app_customization' => 'Customization',
'app_features_security' => 'Features & Security',
'app_customization' => 'カスタマイズ',
'app_features_security' => '機能とセキュリティ',
'app_name' => 'アプリケーション名',
'app_name_desc' => 'この名前はヘッダーやEメール内で表示されます。',
'app_name_header' => 'ヘッダーにアプリケーション名を表示する',
'app_public_access' => 'パブリック・アクセス',
'app_public_access_desc' => 'Enabling this option will allow visitors, that are not logged-in, to access content in your BookStack instance.',
'app_public_access_desc_guest' => 'Access for public visitors can be controlled through the "Guest" user.',
'app_public_access_toggle' => 'Allow public access',
'app_public_access_desc' => 'このオプションを有効にすると、ログインしていない訪問者があなたのBookStackインスタンスのコンテンツにアクセスできるようになります。',
'app_public_access_desc_guest' => '一般の訪問者のアクセスは、「ゲスト」ユーザー権限を通じて制御することができます。',
'app_public_access_toggle' => 'パブリックアクセスを許可',
'app_public_viewing' => 'アプリケーションを公開する',
'app_secure_images' => '画像アップロード時のセキュリティを強化',
'app_secure_images_toggle' => 'Enable higher security image uploads',
'app_secure_images_toggle' => 'より高いセキュリティの画像アップロードを可能にする',
'app_secure_images_desc' => 'パフォーマンスの観点から、全ての画像が公開になっています。このオプションを有効にすると、画像URLの先頭にランダムで推測困難な文字列が追加され、アクセスを困難にします。',
'app_editor' => 'ページエディタ',
'app_editor_desc' => 'ここで選択されたエディタを全ユーザが使用します。',
@@ -37,10 +37,10 @@ return [
'app_homepage' => 'Application Homepage',
'app_homepage_desc' => 'Select a view to show on the homepage instead of the default view. Page permissions are ignored for selected pages.',
'app_homepage_select' => 'ページを選択',
'app_footer_links' => 'Footer Links',
'app_footer_links' => 'フッタのリンク',
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
'app_footer_links_label' => 'Link Label',
'app_footer_links_url' => 'Link URL',
'app_footer_links_label' => '表示するテキスト',
'app_footer_links_url' => 'リンク先の URL',
'app_footer_links_add' => 'Add Footer Link',
'app_disable_comments' => 'コメントを無効にする',
'app_disable_comments_toggle' => 'コメントを無効にする',
@@ -48,7 +48,7 @@ return [
// Color settings
'content_colors' => 'コンテンツの色',
'content_colors_desc' => 'Sets 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' => 'Shelf Color',
'book_color' => 'Book Color',
'chapter_color' => 'Chapter Color',
@@ -57,13 +57,13 @@ return [
// Registration Settings
'reg_settings' => '登録設定',
'reg_enable' => 'Enable Registration',
'reg_enable_toggle' => 'Enable registration',
'reg_enable' => '登録を有効にする',
'reg_enable_toggle' => '登録を有効にする',
'reg_enable_desc' => 'When registration is enabled user will be able to sign themselves up as an application user. Upon registration they are given a single, default user role.',
'reg_default_role' => '新規登録時のデフォルト役割',
'reg_enable_external_warning' => 'The option above is ignored while external LDAP or SAML authentication is active. User accounts for non-existing members will be auto-created if authentication, against the external system in use, is successful.',
'reg_email_confirmation' => 'Email Confirmation',
'reg_email_confirmation_toggle' => 'Require email confirmation',
'reg_enable_external_warning' => '外部のLDAPまたはSAML認証が有効の場合、上記のオプションは無視されます。存在しないメンバーのユーザーアカウントは、使用している外部システムでの認証に成功した場合に自動的に作成されます。',
'reg_email_confirmation' => '確認メール',
'reg_email_confirmation_toggle' => 'メールによる確認を行う',
'reg_confirm_email_desc' => 'ドメイン制限を有効にしている場合はEメール認証が必須となり、この項目は無視されます。',
'reg_confirm_restrict_domain' => 'ドメイン制限',
'reg_confirm_restrict_domain_desc' => '特定のドメインのみ登録できるようにする場合、以下にカンマ区切りで入力します。設定された場合、Eメール認証が必須になります。<br>登録後、ユーザは自由にEメールアドレスを変更できます。',
@@ -72,10 +72,10 @@ return [
// Maintenance settings
'maint' => 'メンテナンス',
'maint_image_cleanup' => 'Cleanup Images',
'maint_image_cleanup_desc' => "Scans page & revision content to check which images and drawings are currently in use and which images are redundant. Ensure you create a full database and image backup before running this.",
'maint_delete_images_only_in_revisions' => 'Also delete images that only exist in old page revisions',
'maint_image_cleanup_desc' => "ページや履歴の内容をスキャンして、どの画像や図面が現在使用されているか、どの画像が余っているかをチェックします。この機能を実行する前に、データベースと画像の完全なバックアップを作成してください。",
'maint_delete_images_only_in_revisions' => 'また、古いページのリビジョンにしか存在しない画像も削除します。',
'maint_image_cleanup_run' => 'クリーンアップを実行',
'maint_image_cleanup_warning' => ':count potentially unused images were found. Are you sure you want to delete these images?',
'maint_image_cleanup_warning' => ':count 個、使用されていない可能性のある画像が見つかりました。これらの画像を削除してもよろしいですか?',
'maint_image_cleanup_success' => ':count potentially unused images found and deleted!',
'maint_image_cleanup_nothing_found' => 'No unused images found, Nothing deleted!',
'maint_send_test_email' => 'テストメールを送信',

View File

@@ -45,5 +45,5 @@ return [
// Other
'commented_on' => '댓글 쓰기',
'permissions_update' => 'updated permissions',
'permissions_update' => '업데이트된 권한',
];

View File

@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => '정보',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => '탭: 보조 정보 표시',
'tab_content' => '내용',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => '탭: 주요 내용 표시',
// Email Content
'email_action_help' => ':actionText를 클릭할 수 없을 때는 웹 브라우저에서 다음 링크로 접속할 수 있습니다.',
@@ -84,6 +84,6 @@ return [
// Footer Link Options
// Not directly used but available for convenience to users.
'privacy_policy' => 'Privacy Policy',
'terms_of_service' => 'Terms of Service',
'privacy_policy' => '개인정보처리방침',
'terms_of_service' => '이용약관',
];

View File

@@ -149,7 +149,7 @@ return [
'chapters_create' => '챕터 만들기',
'chapters_delete' => '챕터 삭제하기',
'chapters_delete_named' => ':chapterName(을)를 지웁니다.',
'chapters_delete_explain' => 'This will delete the chapter with the name \':chapterName\'. All pages that exist within this chapter will also be deleted.',
'chapters_delete_explain' => '\':chapterName\'(을)를 지웁니다. 해당 챕터에 있는 모든 문서도 삭제됩니다.',
'chapters_delete_confirm' => '이 챕터를 지울 건가요?',
'chapters_edit' => '챕터 바꾸기',
'chapters_edit_named' => ':chapterName 바꾸기',
@@ -211,7 +211,7 @@ return [
'pages_revisions' => '문서 수정본',
'pages_revisions_named' => ':pageName 수정본',
'pages_revision_named' => ':pageName 수정본',
'pages_revision_restored_from' => 'Restored from #:id; :summary',
'pages_revision_restored_from' => '#:id 에서; :summary 복원',
'pages_revisions_created_by' => '만든 사용자',
'pages_revisions_date' => '수정한 날짜',
'pages_revisions_number' => 'No.',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => '404 Not Found',
'sorry_page_not_found' => '문서를 못 찾았습니다.',
'sorry_page_not_found_permission_warning' => '이 페이지가 존재하기를 기대했다면, 볼 수 있는 권한이 없을 수 있다.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => '처음으로 돌아가기',
'error_occurred' => '문제가 생겼습니다.',
'app_down' => ':appName에 문제가 있는 것 같습니다',

View File

@@ -37,11 +37,11 @@ return [
'app_homepage' => '처음 페이지',
'app_homepage_desc' => '고른 페이지에 설정한 권한은 무시합니다.',
'app_homepage_select' => '문서 고르기',
'app_footer_links' => 'Footer Links',
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
'app_footer_links_label' => 'Link Label',
'app_footer_links_url' => 'Link URL',
'app_footer_links_add' => 'Add Footer Link',
'app_footer_links' => '푸터 링크',
'app_footer_links_desc' => '사이트 푸터에 표시할 링크들을 추가합니다. 로그인이 필요하지 않은 페이지들을 포함하여 대부분의 페이지 하단에 표시됩니다. 시스템 정의 번역을 사용하기 위해 "trans::<key>"를 사용할 수 있습니다. 예를 들어: "trans::common.privacy_policy"를 사용하면 번역된 "개인정보처리방침"이 제공되며, "trans::common.terms_of_service"는 번역된 "이용약관"를 제공합니다.',
'app_footer_links_label' => '링크 라벨',
'app_footer_links_url' => '링크 URL',
'app_footer_links_add' => '푸터 링크 추가',
'app_disable_comments' => '댓글 사용 안 함',
'app_disable_comments_toggle' => '댓글 사용 안 함',
'app_disable_comments_desc' => '모든 페이지에서 댓글을 숨깁니다.',
@@ -73,7 +73,7 @@ return [
'maint' => '데이터',
'maint_image_cleanup' => '이미지 정리',
'maint_image_cleanup_desc' => "중복한 이미지를 찾습니다. 실행하기 전에 이미지를 백업하세요.",
'maint_delete_images_only_in_revisions' => 'Also delete images that only exist in old page revisions',
'maint_delete_images_only_in_revisions' => '오래된 문서 수정본에만 있는 이미지도 삭제하기',
'maint_image_cleanup_run' => '실행',
'maint_image_cleanup_warning' => '이미지 :count개를 지울 건가요?',
'maint_image_cleanup_success' => '이미지 :count개 삭제함',
@@ -85,38 +85,38 @@ return [
'maint_send_test_email_mail_subject' => '테스트 메일',
'maint_send_test_email_mail_greeting' => '이메일 전송이 성공하였습니다.',
'maint_send_test_email_mail_text' => '축하합니다! 이 메일을 받음으로 이메일 설정이 정상적으로 되었음을 확인하였습니다.',
'maint_recycle_bin_desc' => 'Deleted shelves, books, chapters & pages are sent to the recycle bin so they can be restored or permanently deleted. Older items in the recycle bin may be automatically removed after a while depending on system configuration.',
'maint_recycle_bin_open' => 'Open Recycle Bin',
'maint_recycle_bin_desc' => '삭제된 서가, 책자, 챕터 & 문서들을 휴지통으로 보내져 복구하거나 또는 영구적으로 삭제할 수 있습니다. 휴지통의 오래된 항목은 시스템 구성에 따라 잠시 후 자동으로 삭제될 수 있습니다.',
'maint_recycle_bin_open' => '휴지통 열기',
// Recycle Bin
'recycle_bin' => 'Recycle Bin',
'recycle_bin_desc' => 'Here you can restore items that have been deleted or choose to permanently remove them from the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
'recycle_bin_deleted_item' => 'Deleted Item',
'recycle_bin_deleted_by' => 'Deleted By',
'recycle_bin_deleted_at' => 'Deletion Time',
'recycle_bin_permanently_delete' => 'Permanently Delete',
'recycle_bin_restore' => 'Restore',
'recycle_bin_contents_empty' => 'The recycle bin is currently empty',
'recycle_bin_empty' => 'Empty Recycle Bin',
'recycle_bin_empty_confirm' => 'This will permanently destroy all items in the recycle bin including content contained within each item. Are you sure you want to empty the recycle bin?',
'recycle_bin_destroy_confirm' => 'This action will permanently delete this item, along with any child elements listed below, from the system and you will not be able to restore this content. Are you sure you want to permanently delete this item?',
'recycle_bin_destroy_list' => 'Items to be Destroyed',
'recycle_bin_restore_list' => 'Items to be Restored',
'recycle_bin_restore_confirm' => 'This action will restore the deleted item, including any child elements, to their original location. If the original location has since been deleted, and is now in the recycle bin, the parent item will also need to be restored.',
'recycle_bin_restore_deleted_parent' => 'The parent of this item has also been deleted. These will remain deleted until that parent is also restored.',
'recycle_bin_destroy_notification' => 'Deleted :count total items from the recycle bin.',
'recycle_bin_restore_notification' => 'Restored :count total items from the recycle bin.',
'recycle_bin' => '휴지통',
'recycle_bin_desc' => '여기서 삭제된 항목을 복원하거나 시스템에서 영구적으로 제거하도록 선택할 수 있습니다. 이 목록은 권한 필터가 적용되는 시스템의 유사한 활동 목록과 달리 필터링되지 않습니다.',
'recycle_bin_deleted_item' => '삭제된 항목',
'recycle_bin_deleted_by' => '삭제자',
'recycle_bin_deleted_at' => '삭제 시간',
'recycle_bin_permanently_delete' => '영구적으로 삭제하기',
'recycle_bin_restore' => '복원하기',
'recycle_bin_contents_empty' => '휴지통은 현재 비어있습니다.',
'recycle_bin_empty' => '휴지통 비우기',
'recycle_bin_empty_confirm' => '각 항목에 포함된 내용을 포함하여 휴지통의 모든 항목이 영구히 삭제됩니다. 휴지통을 비우시겠습니까?',
'recycle_bin_destroy_confirm' => '이 작업을 수행하면 아래 나열된 하위 요소와 함께 이 항목이 시스템에서 영구적으로 삭제되고 이 내용을 복원할 수 없습니다. 이 항목을 완전히 삭제하시겠습니까?',
'recycle_bin_destroy_list' => '삭제할 항목들',
'recycle_bin_restore_list' => '복원할 항목들',
'recycle_bin_restore_confirm' => '이 작업을 수행하면 하위 요소를 포함하여 삭제된 항목이 원래 위치로 복원됩니다. 원래 위치가 삭제되고 현재 휴지통에 있는 경우 상위 항목도 복원해야 합니다.',
'recycle_bin_restore_deleted_parent' => '이 항목의 상위 항목도 삭제되었습니다. 상위 항목도 복원될 때까지 삭제된 상태로 유지됩니다.',
'recycle_bin_destroy_notification' => '휴지통에서 총 :count 개의 항목들이 삭제되었습니다.',
'recycle_bin_restore_notification' => '휴지통에서 총 :count 개의 항목들이 복원되었습니다.',
// Audit Log
'audit' => '감사 기록',
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
'audit_desc' => '이 감사 로그는 시스템에서 추적한 활동 목록을 표시합니다. 이 목록은 권한 필터가 적용되는 시스템의 유사한 활동 목록과 달리 필터링되지 않습니다.',
'audit_event_filter' => '이벤트 필터',
'audit_event_filter_no_filter' => '필터 없음',
'audit_deleted_item' => '삭제된 항목',
'audit_deleted_item_name' => '이름: :name',
'audit_table_user' => '사용자',
'audit_table_event' => '이벤트',
'audit_table_related' => 'Related Item or Detail',
'audit_table_related' => '관련 항목 또는 세부 정보',
'audit_table_date' => '활동 날짜',
'audit_date_from' => '날짜 범위 시작',
'audit_date_to' => '날짜 범위 끝',
@@ -146,7 +146,7 @@ return [
'role_access_api' => '시스템 접근 API',
'role_manage_settings' => '사이트 설정 관리',
'role_asset' => '권한 항목',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'roles_system_warning' => '위의 세 가지 권한 중 하나에 액세스하면 사용자가 자신의 권한이나 시스템 내 다른 사용자의 권한을 변경할 수 있습니다. 이러한 권한이 있는 역할만 신뢰할 수 있는 사용자에게 할당합니다.',
'role_asset_desc' => '책자, 챕터, 문서별 권한은 이 설정에 우선합니다.',
'role_asset_admins' => 'Admin 권한은 어디든 접근할 수 있지만 이 설정은 사용자 인터페이스에서 해당 활동을 표시할지 결정합니다.',
'role_all' => '모든 항목',
@@ -162,7 +162,7 @@ return [
'user_profile' => '사용자 프로필',
'users_add_new' => '사용자 만들기',
'users_search' => '사용자 검색',
'users_latest_activity' => 'Latest Activity',
'users_latest_activity' => '최근 활동',
'users_details' => '사용자 정보',
'users_details_desc' => '메일 주소로 로그인합니다.',
'users_details_desc_no_email' => '사용자 이름을 바꿉니다.',
@@ -180,10 +180,10 @@ return [
'users_delete_named' => ':userName 삭제',
'users_delete_warning' => ':userName에 관한 데이터를 지웁니다.',
'users_delete_confirm' => '이 사용자를 지울 건가요?',
'users_migrate_ownership' => 'Migrate Ownership',
'users_migrate_ownership_desc' => 'Select a user here if you want another user to become the owner of all items currently owned by this user.',
'users_none_selected' => 'No user selected',
'users_delete_success' => 'User successfully removed',
'users_migrate_ownership' => '소유권 이전',
'users_migrate_ownership_desc' => '다른 사용자가 현재 이 사용자가 소유하고 있는 모든 항목의 소유자가 되려면 여기서 사용자를 선택하십시오.',
'users_none_selected' => '선택된 사용자가 없습니다.',
'users_delete_success' => '사용자가 성공적으로 삭제되었습니다.',
'users_edit' => '사용자 수정',
'users_edit_profile' => '프로필 바꾸기',
'users_edit_success' => '프로필 바꿈',

View File

@@ -89,7 +89,7 @@ return [
'required_without' => ':values(이)가 없을 때 :attribute(을)를 구성해야 합니다.',
'required_without_all' => ':values(이)가 모두 없을 때 :attribute(을)를 구성해야 합니다.',
'same' => ':attribute(와)과 :other(을)를 똑같이 구성하세요.',
'safe_url' => 'The provided link may not be safe.',
'safe_url' => '제공된 링크가 안전하지 않을 수 있습니다.',
'size' => [
'numeric' => ':attribute(을)를 :size(으)로 구성하세요.',
'file' => ':attribute(을)를 :size킬로바이트로 구성하세요.',

View File

@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'Navigācija',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Izvērst galvenes izvēlni',
'profile_menu' => 'Profila izvēlne',
'view_profile' => 'Apskatīt profilu',
'edit_profile' => 'Rediģēt profilu',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Informācija',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Tab: Rādīt sekundāro informāciju',
'tab_content' => 'Saturs',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Tab: Rādīt galveno saturu',
// Email Content
'email_action_help' => 'Ja ir problēmas noklikšķināt ":actionText" pogu, nokopē un ievieto saiti savā interneta pārlūkā:',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Lapa nav atrasta',
'sorry_page_not_found' => 'Atvainojiet, meklētā lapa nav atrasta.',
'sorry_page_not_found_permission_warning' => 'Ja šai lapai būtu bijis te jābūt, jums var nebūt pietiekamas piekļuves tiesības, lai to apskatītu.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Atgriezties uz sākumu',
'error_occurred' => 'Radusies kļūda',
'app_down' => ':appName pagaidām nav pieejams',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Siden finnes ikke',
'sorry_page_not_found' => 'Beklager, siden du leter etter ble ikke funnet.',
'sorry_page_not_found_permission_warning' => 'Hvis du forventet at denne siden skulle eksistere, har du kanskje ikke tillatelse til å se den.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Gå til hovedside',
'error_occurred' => 'En feil oppsto',
'app_down' => ':appName er nede for øyeblikket',

View File

@@ -7,43 +7,43 @@ return [
// Pages
'page_create' => 'maakte pagina',
'page_create_notification' => 'Pagina Succesvol Aangemaakt',
'page_update' => 'veranderde pagina',
'page_update_notification' => 'Pagina Succesvol Bijgewerkt',
'page_create_notification' => 'Pagina succesvol aangemaakt',
'page_update' => 'wijzigde pagina',
'page_update_notification' => 'Pagina succesvol bijgewerkt',
'page_delete' => 'verwijderde pagina',
'page_delete_notification' => 'Pagina Succesvol Verwijderd',
'page_delete_notification' => 'Pagina succesvol verwijderd',
'page_restore' => 'herstelde pagina',
'page_restore_notification' => 'Pagina Succesvol Hersteld',
'page_restore_notification' => 'Pagina succesvol hersteld',
'page_move' => 'verplaatste pagina',
// Chapters
'chapter_create' => 'maakte hoofdstuk',
'chapter_create_notification' => 'Hoofdstuk Succesvol Aangemaakt',
'chapter_update' => 'veranderde hoofdstuk',
'chapter_update_notification' => 'Hoofdstuk Succesvol Bijgewerkt',
'chapter_create_notification' => 'Hoofdstuk succesvol aangemaakt',
'chapter_update' => 'wijzigde hoofdstuk',
'chapter_update_notification' => 'Hoofdstuk succesvol bijgewerkt',
'chapter_delete' => 'verwijderde hoofdstuk',
'chapter_delete_notification' => 'Hoofdstuk Succesvol Verwijderd',
'chapter_delete_notification' => 'Hoofdstuk succesvol verwijderd',
'chapter_move' => 'verplaatste hoofdstuk',
// Books
'book_create' => 'maakte boek',
'book_create_notification' => 'Boek Succesvol Aangemaakt',
'book_update' => 'veranderde boek',
'book_update_notification' => 'Boek Succesvol Bijgewerkt',
'book_create_notification' => 'Boek succesvol aangemaakt',
'book_update' => 'wijzigde boek',
'book_update_notification' => 'Boek succesvol bijgewerkt',
'book_delete' => 'verwijderde boek',
'book_delete_notification' => 'Boek Succesvol Verwijderd',
'book_delete_notification' => 'Boek succesvol verwijderd',
'book_sort' => 'sorteerde boek',
'book_sort_notification' => 'Boek Succesvol Gesorteerd',
'book_sort_notification' => 'Boek succesvol gesorteerd',
// Bookshelves
'bookshelf_create' => 'maakte Boekenplank',
'bookshelf_create_notification' => 'Boekenplank Succesvol Aangemaakt',
'bookshelf_update' => 'veranderde boekenplank',
'bookshelf_update_notification' => 'Boekenplank Succesvol Bijgewerkt',
'bookshelf_create' => 'maakte boekenplank',
'bookshelf_create_notification' => 'Boekenplank succesvol aangemaakt',
'bookshelf_update' => 'wijzigde boekenplank',
'bookshelf_update_notification' => 'Boekenplank succesvol bijgewerkt',
'bookshelf_delete' => 'verwijderde boekenplank',
'bookshelf_delete_notification' => 'Boekenplank Succesvol Verwijderd',
'bookshelf_delete_notification' => 'Boekenplank succesvol verwijderd',
// Other
'commented_on' => 'reactie op',
'permissions_update' => 'updated permissions',
'commented_on' => 'reageerde op',
'permissions_update' => 'wijzigde permissies',
];

View File

@@ -7,7 +7,7 @@
return [
'failed' => 'Deze inloggegevens zijn niet bij ons bekend.',
'throttle' => 'Te veel loginpogingen! Probeer het opnieuw na :seconds seconden.',
'throttle' => 'Te veel login pogingen! Probeer het opnieuw na :seconds seconden.',
// Login & Register
'sign_up' => 'Registreren',
@@ -20,34 +20,34 @@ return [
'username' => 'Gebruikersnaam',
'email' => 'E-mail',
'password' => 'Wachtwoord',
'password_confirm' => 'Wachtwoord Bevestigen',
'password_confirm' => 'Wachtwoord bevestigen',
'password_hint' => 'Minimaal 8 tekens',
'forgot_password' => 'Wachtwoord vergeten?',
'remember_me' => 'Mij onthouden',
'ldap_email_hint' => 'Geef een email op waarmee je dit account wilt gebruiken.',
'create_account' => 'Account Aanmaken',
'ldap_email_hint' => 'Geef een emailadres op voor dit account.',
'create_account' => 'Account aanmaken',
'already_have_account' => 'Heb je al een account?',
'dont_have_account' => 'Nog geen account?',
'social_login' => 'Aanmelden via een sociaal netwerk',
'social_registration' => 'Social Registratie',
'social_registration_text' => 'Registreer en log in met een andere dienst.',
'social_registration' => 'Social registratie',
'social_registration_text' => 'Registreer en log in met een andere service.',
'register_thanks' => 'Bedankt voor het registreren!',
'register_confirm' => 'Controleer je e-mail en bevestig je registratie om in te loggen op :appName.',
'registrations_disabled' => 'Registratie is momenteel niet mogelijk',
'registration_email_domain_invalid' => 'Dit e-maildomein is niet toegestaan',
'register_success' => 'Bedankt voor het inloggen. Je bent ook geregistreerd.',
'register_success' => 'Bedankt voor het aanmelden! Je bent nu geregistreerd en aangemeld.',
// Password Reset
'reset_password' => 'Wachtwoord Herstellen',
'reset_password' => 'Wachtwoord herstellen',
'reset_password_send_instructions' => 'Geef je e-mail en we sturen je een link om je wachtwoord te herstellen',
'reset_password_send_button' => 'Link Sturen',
'reset_password_send_button' => 'Link sturen',
'reset_password_sent' => 'Een link om het wachtwoord te resetten zal verstuurd worden naar :email als dat e-mailadres in het systeem gevonden is.',
'reset_password_success' => 'Je wachtwoord is succesvol hersteld.',
'email_reset_subject' => 'Herstel je wachtwoord van :appName',
'email_reset_text' => 'Je ontvangt deze e-mail zodat je je wachtwoord kunt herstellen.',
'email_reset_not_requested' => 'Als je jouw wachtwoord niet wilt wijzigen, doe dan niets.',
'email_reset_text' => 'Je ontvangt deze e-mail omdat je een wachtwoord herstel verzoek had verzonden.',
'email_reset_not_requested' => 'Als je geen wachtwoord herstel hebt aangevraagd, hoef je niets te doen.',
// Email Confirmation
@@ -56,14 +56,14 @@ return [
'email_confirm_text' => 'Bevestig je registratie door op onderstaande knop te drukken:',
'email_confirm_action' => 'Bevestig je e-mail',
'email_confirm_send_error' => 'E-mail bevestiging is vereisd maar het systeem kon geen mail verzenden. Neem contact op met de beheerder.',
'email_confirm_success' => 'Je e-mailadres is bevestigt!',
'email_confirm_success' => 'Je e-mailadres is bevestigd!',
'email_confirm_resent' => 'De bevestigingse-mails is opnieuw verzonden. Controleer je inbox.',
'email_not_confirmed' => 'E-mail nog niet bevestigd',
'email_not_confirmed' => 'E-mailadres nog niet bevestigd',
'email_not_confirmed_text' => 'Je e-mailadres is nog niet bevestigd.',
'email_not_confirmed_click_link' => 'Klik op de link in de e-mail die vlak na je registratie is verstuurd.',
'email_not_confirmed_resend' => 'Als je deze e-mail niet kunt vinden kun je deze met onderstaande formulier opnieuw verzenden.',
'email_not_confirmed_resend_button' => 'Bevestigingsmail Opnieuw Verzenden',
'email_not_confirmed_resend_button' => 'Bevestigingsmail opnieuw verzenden',
// User Invite
'user_invite_email_subject' => 'Je bent uitgenodigd voor :appName!',

View File

@@ -11,7 +11,7 @@ return [
'save' => 'Opslaan',
'continue' => 'Doorgaan',
'select' => 'Kies',
'toggle_all' => 'Toggle Alles',
'toggle_all' => 'Toggle alles',
'more' => 'Meer',
// Form Labels
@@ -19,12 +19,12 @@ return [
'description' => 'Beschrijving',
'role' => 'Rol',
'cover_image' => 'Omslagfoto',
'cover_image_description' => 'Deze afbeelding moet ongeveer 300x170px zijn.',
'cover_image_description' => 'Deze afbeelding moet ongeveer 440x250px zijn.',
// Actions
'actions' => 'Acties',
'view' => 'Bekijk',
'view_all' => 'Bekijk Alle',
'view_all' => 'Bekijk alle',
'create' => 'Aanmaken',
'update' => 'Bijwerken',
'edit' => 'Bewerk',
@@ -33,7 +33,7 @@ return [
'copy' => 'Kopiëren',
'reply' => 'Beantwoorden',
'delete' => 'Verwijder',
'delete_confirm' => 'Confirm Deletion',
'delete_confirm' => 'Verwijdering bevestigen',
'search' => 'Zoek',
'search_clear' => 'Zoekopdracht wissen',
'reset' => 'Resetten',
@@ -43,47 +43,47 @@ return [
// Sort Options
'sort_options' => 'Sorteeropties',
'sort_direction_toggle' => 'Sorteer richting',
'sort_direction_toggle' => 'Sorteerrichting',
'sort_ascending' => 'Sorteer oplopend',
'sort_descending' => 'Sorteer teruglopend',
'sort_descending' => 'Sorteer aflopend',
'sort_name' => 'Naam',
'sort_default' => 'Default',
'sort_default' => 'Standaard',
'sort_created_at' => 'Aanmaakdatum',
'sort_updated_at' => 'Gewijzigd op',
// Misc
'deleted_user' => 'Verwijderde gebruiker',
'no_activity' => 'Geen activiteiten',
'no_activity' => 'Geen activiteit om weer te geven',
'no_items' => 'Geen items beschikbaar',
'back_to_top' => 'Terug naar boven',
'toggle_details' => 'Details Weergeven',
'toggle_thumbnails' => 'Thumbnails Weergeven',
'toggle_details' => 'Details weergeven',
'toggle_thumbnails' => 'Thumbnails weergeven',
'details' => 'Details',
'grid_view' => 'Grid weergave',
'list_view' => 'Lijst weergave',
'list_view' => 'Lijstweergave',
'default' => 'Standaard',
'breadcrumb' => 'Kruimelpad',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Header menu uitvouwen',
'profile_menu' => 'Profiel menu',
'view_profile' => 'Profiel Weergeven',
'edit_profile' => 'Profiel Bewerken',
'dark_mode' => 'Donkere Modus',
'light_mode' => 'Lichte Modus',
'view_profile' => 'Profiel weergeven',
'edit_profile' => 'Profiel bewerken',
'dark_mode' => 'Donkere modus',
'light_mode' => 'Lichte modus',
// Layout tabs
'tab_info' => 'Info',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Tabblad: Toon secundaire informatie',
'tab_content' => 'Inhoud',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Tabblad: Toon primaire inhoud',
// Email Content
'email_action_help' => 'Als je de knop ":actionText" niet werkt, kopieer en plak de onderstaande URL in je web browser:',
'email_action_help' => 'Als je de knop ":actionText" niet werkt, kopieër en plak de onderstaande URL in je web browser:',
'email_rights' => 'Alle rechten voorbehouden',
// Footer Link Options
// Not directly used but available for convenience to users.
'privacy_policy' => 'Privacy Policy',
'terms_of_service' => 'Terms of Service',
'privacy_policy' => 'Privacybeleid',
'terms_of_service' => 'Algemene voorwaarden',
];

View File

@@ -5,21 +5,21 @@
return [
// Image Manager
'image_select' => 'Selecteer Afbeelding',
'image_select' => 'Selecteer afbeelding',
'image_all' => 'Alles',
'image_all_title' => 'Alle afbeeldingen weergeven',
'image_book_title' => 'Afbeeldingen van dit boek weergeven',
'image_page_title' => 'Afbeeldingen van deze pagina weergeven',
'image_search_hint' => 'Zoek op afbeeldingsnaam',
'image_uploaded' => 'Geüpload :uploadedDate',
'image_load_more' => 'Meer Laden',
'image_load_more' => 'Meer laden',
'image_image_name' => 'Afbeeldingsnaam',
'image_delete_used' => 'Deze afbeeldingen is op onderstaande pagina\'s in gebruik.',
'image_delete_confirm_text' => 'Weet u zeker dat u deze afbeelding wilt verwijderen?',
'image_select_image' => 'Kies Afbeelding',
'image_select_image' => 'Kies afbeelding',
'image_dropzone' => 'Sleep afbeeldingen hier of klik hier om te uploaden',
'images_deleted' => 'Verwijderde Afbeeldingen',
'image_preview' => 'Afbeelding Voorbeeld',
'images_deleted' => 'Verwijderde afbeeldingen',
'image_preview' => 'Afbeelding voorbeeld',
'image_upload_success' => 'Afbeelding succesvol geüpload',
'image_update_success' => 'Afbeeldingsdetails succesvol verwijderd',
'image_delete_success' => 'Afbeelding succesvol verwijderd',
@@ -27,8 +27,8 @@ return [
// Code Editor
'code_editor' => 'Code invoegen',
'code_language' => 'Code taal',
'code_language' => 'Codetaal',
'code_content' => 'Code',
'code_session_history' => 'Zittingsgeschiedenis',
'code_session_history' => 'Sessie geschiedenis',
'code_save' => 'Sla code op',
];

View File

@@ -6,7 +6,7 @@
return [
// Shared
'recently_created' => 'Recent Aangemaakt',
'recently_created' => 'Recent aangemaakt',
'recently_created_pages' => 'Recent Aangemaakte Pagina\'s',
'recently_updated_pages' => 'Recent Bijgewerkte Pagina\'s',
'recently_created_chapters' => 'Recent Aangemaakte Hoofdstukken',
@@ -22,7 +22,7 @@ return [
'meta_created_name' => 'Aangemaakt: :timeLength door :user',
'meta_updated' => ':timeLength Aangepast',
'meta_updated_name' => 'Aangepast: :timeLength door :user',
'meta_owned_name' => 'Owned by :user',
'meta_owned_name' => 'Eigendom van :user',
'entity_select' => 'Entiteit Selecteren',
'images' => 'Afbeeldingen',
'my_recent_drafts' => 'Mijn Concepten',
@@ -40,7 +40,7 @@ return [
'permissions_intro' => 'Als je dit aanzet, dan gelden rol-permissies niet meer voor deze pagina.',
'permissions_enable' => 'Custom Permissies Aanzetten',
'permissions_save' => 'Permissies Opslaan',
'permissions_owner' => 'Owner',
'permissions_owner' => 'Eigenaar',
// Search
'search_results' => 'Zoekresultaten',
@@ -60,7 +60,7 @@ return [
'search_permissions_set' => 'Permissies gezet',
'search_created_by_me' => 'Door mij gemaakt',
'search_updated_by_me' => 'Door mij geupdate',
'search_owned_by_me' => 'Owned by me',
'search_owned_by_me' => 'Eigendom van mij',
'search_date_options' => 'Datum Opties',
'search_updated_before' => 'Geupdate voor',
'search_updated_after' => 'Geupdate na',
@@ -75,10 +75,10 @@ return [
'x_shelves' => ':count Boekenplank|:count Boekenplanken',
'shelves_long' => 'Boekenplanken',
'shelves_empty' => 'Er zijn geen boekenplanken aangemaakt',
'shelves_create' => 'Nieuwe Boekenplank Aanmaken',
'shelves_create' => 'Nieuwe boekenplank maken',
'shelves_popular' => 'Populaire Boekenplanken',
'shelves_new' => 'Nieuwe Boekenplanken',
'shelves_new_action' => 'Nieuwe Boekplank',
'shelves_new' => 'Nieuwe boekenplanken',
'shelves_new_action' => 'Nieuwe boekenplank',
'shelves_popular_empty' => 'De meest populaire boekenplanken worden hier weergegeven.',
'shelves_new_empty' => 'De meest recent aangemaakt boekenplanken worden hier weergeven.',
'shelves_save' => 'Boekenplanken Opslaan',
@@ -108,11 +108,11 @@ return [
'books_empty' => 'Er zijn geen boeken aangemaakt',
'books_popular' => 'Populaire Boeken',
'books_recent' => 'Recente Boeken',
'books_new' => 'Nieuwe Boeken',
'books_new_action' => 'Nieuw Boek',
'books_new' => 'Nieuwe boeken',
'books_new_action' => 'Nieuw boek',
'books_popular_empty' => 'De meest populaire boeken worden hier weergegeven.',
'books_new_empty' => 'De meest recent aangemaakte boeken verschijnen hier.',
'books_create' => 'Nieuw Boek Aanmaken',
'books_create' => 'Nieuw boek maken',
'books_delete' => 'Boek Verwijderen',
'books_delete_named' => 'Verwijder Boek :bookName',
'books_delete_explain' => 'Deze actie verwijdert het boek \':bookName\', Alle pagina\'s en hoofdstukken worden verwijderd.',
@@ -124,7 +124,7 @@ return [
'books_permissions' => 'Boek Permissies',
'books_permissions_updated' => 'Boek Permissies Opgeslagen',
'books_empty_contents' => 'Er zijn nog een hoofdstukken en pagina\'s voor dit boek gemaakt.',
'books_empty_create_page' => 'Pagina Toevoegen',
'books_empty_create_page' => 'Nieuwe pagina maken',
'books_empty_sort_current_book' => 'Boek sorteren',
'books_empty_add_chapter' => 'Hoofdstuk Toevoegen',
'books_permissions_active' => 'Boek Permissies Actief',
@@ -138,18 +138,18 @@ return [
'books_sort_chapters_first' => 'Hoofdstukken eerst',
'books_sort_chapters_last' => 'Hoofdstukken Laatst',
'books_sort_show_other' => 'Bekijk Andere Boeken',
'books_sort_save' => 'Nieuwe Order Opslaan',
'books_sort_save' => 'Nieuwe volgorde opslaan',
// Chapters
'chapter' => 'Hoofdstuk',
'chapters' => 'Hoofdstukken',
'x_chapters' => ':count Hoofdstuk|:count Hoofdstukken',
'chapters_popular' => 'Populaire Hoofdstukken',
'chapters_new' => 'Nieuw Hoofdstuk',
'chapters_create' => 'Hoofdstuk Toevoegen',
'chapters_new' => 'Nieuw hoofdstuk',
'chapters_create' => 'Nieuw hoofdstuk maken',
'chapters_delete' => 'Hoofdstuk Verwijderen',
'chapters_delete_named' => 'Verwijder Hoofdstuk :chapterName',
'chapters_delete_explain' => 'This will delete the chapter with the name \':chapterName\'. All pages that exist within this chapter will also be deleted.',
'chapters_delete_explain' => 'Dit verwijdert het hoofdstuk met de naam \':chapterName\'. Alle pagina\'s die binnen dit hoofdstuk staan, worden ook verwijderd.',
'chapters_delete_confirm' => 'Weet je zeker dat je dit boek wilt verwijderen?',
'chapters_edit' => 'Hoofdstuk Aanpassen',
'chapters_edit_named' => 'Hoofdstuk :chapterName Aanpassen',
@@ -168,7 +168,7 @@ return [
'pages' => 'Pagina\'s',
'x_pages' => ':count Pagina|:count Pagina\'s',
'pages_popular' => 'Populaire Pagina\'s',
'pages_new' => 'Nieuwe Pagina',
'pages_new' => 'Nieuwe pagina',
'pages_attachments' => 'Bijlages',
'pages_navigation' => 'Pagina Navigatie',
'pages_delete' => 'Pagina Verwijderen',
@@ -211,7 +211,7 @@ return [
'pages_revisions' => 'Pagina Revisies',
'pages_revisions_named' => 'Pagina Revisies voor :pageName',
'pages_revision_named' => 'Pagina Revisie voor :pageName',
'pages_revision_restored_from' => 'Restored from #:id; :summary',
'pages_revision_restored_from' => 'Hersteld van #:id; :samenvatting',
'pages_revisions_created_by' => 'Aangemaakt door',
'pages_revisions_date' => 'Revisiedatum',
'pages_revisions_number' => '#',
@@ -227,7 +227,7 @@ return [
'pages_edit_content_link' => 'Bewerk inhoud',
'pages_permissions_active' => 'Pagina Permissies Actief',
'pages_initial_revision' => 'Eerste publicatie',
'pages_initial_name' => 'Nieuwe Pagina',
'pages_initial_name' => 'Nieuwe pagina',
'pages_editing_draft_notification' => 'U bewerkt momenteel een concept dat voor het laatst is opgeslagen op :timeDiff.',
'pages_draft_edited_notification' => 'Deze pagina is sindsdien bijgewerkt. Het wordt aanbevolen dat u dit concept verwijderd.',
'pages_draft_edit_active' => [
@@ -269,7 +269,7 @@ return [
'attachments_link_url' => 'Link naar bestand',
'attachments_link_url_hint' => 'Url, site of bestand',
'attach' => 'Koppelen',
'attachments_insert_link' => 'Add Attachment Link to Page',
'attachments_insert_link' => 'Bijlage link toevoegen aan pagina',
'attachments_edit_file' => 'Bestand Bewerken',
'attachments_edit_file_name' => 'Bestandsnaam',
'attachments_edit_drop_upload' => 'Sleep een bestand of klik hier om te uploaden en te overschrijven',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Pagina Niet Gevonden',
'sorry_page_not_found' => 'Sorry, de pagina die je zocht is niet beschikbaar.',
'sorry_page_not_found_permission_warning' => 'Als u verwacht dat deze pagina bestaat heeft u misschien geen rechten om het te bekijken.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Terug naar home',
'error_occurred' => 'Er Ging Iets Fout',
'app_down' => ':appName is nu niet beschikbaar',

View File

@@ -37,11 +37,11 @@ return [
'app_homepage' => 'Applicatie Homepagina',
'app_homepage_desc' => 'Selecteer een weergave om weer te geven op de homepage in plaats van de standaard weergave. Paginarechten worden genegeerd voor geselecteerde pagina\'s.',
'app_homepage_select' => 'Selecteer een pagina',
'app_footer_links' => 'Footer Links',
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
'app_footer_links_label' => 'Link Label',
'app_footer_links' => 'Voettekst links',
'app_footer_links_desc' => 'Voeg links toe om te laten zien in de voettekst van de site. Deze worden onderaan de meeste pagina\'s weergegeven, met inbegrip van pagina\'s die geen inloggen vereisen. U kunt een label van "trans::<key>" gebruiken om systeemgedefinieerde vertalingen te gebruiken. Bijvoorbeeld: Het gebruik van "trans:common.privacy_policy" biedt de vertaalde tekst "Privacybeleid" en "trans:common.terms_of_service" voor de vertaalde tekst "Servicevoorwaarden".',
'app_footer_links_label' => 'Link label',
'app_footer_links_url' => 'Link URL',
'app_footer_links_add' => 'Add Footer Link',
'app_footer_links_add' => 'Voettekst link toevoegen',
'app_disable_comments' => 'Reacties uitschakelen',
'app_disable_comments_toggle' => 'Opmerkingen uitschakelen',
'app_disable_comments_desc' => 'Schakel opmerkingen uit op alle pagina\'s in de applicatie. Bestaande opmerkingen worden niet getoond.',
@@ -73,7 +73,7 @@ return [
'maint' => 'Onderhoud',
'maint_image_cleanup' => 'Afbeeldingen opschonen',
'maint_image_cleanup_desc' => "Scant pagina- en revisie inhoud om te controleren welke afbeeldingen en tekeningen momenteel worden gebruikt en welke afbeeldingen overbodig zijn. Zorg ervoor dat je een volledige database en afbeelding backup maakt voordat je dit uitvoert.",
'maint_delete_images_only_in_revisions' => 'Also delete images that only exist in old page revisions',
'maint_delete_images_only_in_revisions' => 'Ook afbeeldingen die alleen in oude pagina revisies bestaan verwijderen',
'maint_image_cleanup_run' => 'Opschonen uitvoeren',
'maint_image_cleanup_warning' => ':count potentieel ongebruikte afbeeldingen gevonden. Weet u zeker dat u deze afbeeldingen wilt verwijderen?',
'maint_image_cleanup_success' => ':count potentieel ongebruikte afbeeldingen gevonden en verwijderd!',
@@ -85,41 +85,41 @@ return [
'maint_send_test_email_mail_subject' => 'Test E-mail',
'maint_send_test_email_mail_greeting' => 'E-mailbezorging lijkt te werken!',
'maint_send_test_email_mail_text' => 'Gefeliciteerd! Nu je deze e-mailmelding hebt ontvangen, lijken je e-mailinstellingen correct te zijn geconfigureerd.',
'maint_recycle_bin_desc' => 'Deleted shelves, books, chapters & pages are sent to the recycle bin so they can be restored or permanently deleted. Older items in the recycle bin may be automatically removed after a while depending on system configuration.',
'maint_recycle_bin_open' => 'Open Recycle Bin',
'maint_recycle_bin_desc' => 'Verwijderde planken, boeken, hoofdstukken en pagina\'s worden naar de prullenbak gestuurd om ze te herstellen of definitief te verwijderen. Oudere items in de prullenbak kunnen automatisch worden verwijderd, afhankelijk van de systeemconfiguratie.',
'maint_recycle_bin_open' => 'Prullenbak openen',
// Recycle Bin
'recycle_bin' => 'Recycle Bin',
'recycle_bin_desc' => 'Here you can restore items that have been deleted or choose to permanently remove them from the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
'recycle_bin_deleted_item' => 'Deleted Item',
'recycle_bin_deleted_by' => 'Deleted By',
'recycle_bin_deleted_at' => 'Deletion Time',
'recycle_bin_permanently_delete' => 'Permanently Delete',
'recycle_bin_restore' => 'Restore',
'recycle_bin_contents_empty' => 'The recycle bin is currently empty',
'recycle_bin_empty' => 'Empty Recycle Bin',
'recycle_bin_empty_confirm' => 'This will permanently destroy all items in the recycle bin including content contained within each item. Are you sure you want to empty the recycle bin?',
'recycle_bin_destroy_confirm' => 'This action will permanently delete this item, along with any child elements listed below, from the system and you will not be able to restore this content. Are you sure you want to permanently delete this item?',
'recycle_bin_destroy_list' => 'Items to be Destroyed',
'recycle_bin_restore_list' => 'Items to be Restored',
'recycle_bin_restore_confirm' => 'This action will restore the deleted item, including any child elements, to their original location. If the original location has since been deleted, and is now in the recycle bin, the parent item will also need to be restored.',
'recycle_bin_restore_deleted_parent' => 'The parent of this item has also been deleted. These will remain deleted until that parent is also restored.',
'recycle_bin_destroy_notification' => 'Deleted :count total items from the recycle bin.',
'recycle_bin_restore_notification' => 'Restored :count total items from the recycle bin.',
'recycle_bin' => 'Prullenbak',
'recycle_bin_desc' => 'Hier kunt u items herstellen die zijn verwijderd of kiezen om ze permanent te verwijderen uit het systeem. Deze lijst is niet gefilterd, in tegenstelling tot vergelijkbare activiteitenlijsten in het systeem waar rechtenfilters worden toegepast.',
'recycle_bin_deleted_item' => 'Verwijderde Item',
'recycle_bin_deleted_by' => 'Verwijderd door',
'recycle_bin_deleted_at' => 'Verwijdert op',
'recycle_bin_permanently_delete' => 'Permanent verwijderen',
'recycle_bin_restore' => 'Herstellen',
'recycle_bin_contents_empty' => 'De prullenbak is momenteel leeg',
'recycle_bin_empty' => 'Prullenbak legen',
'recycle_bin_empty_confirm' => 'Dit zal permanent alle items in de prullenbak vernietigen, inclusief inhoud die in elk item zit. Weet u zeker dat u de prullenbak wilt legen?',
'recycle_bin_destroy_confirm' => 'Deze actie zal dit item permanent verwijderen, samen met alle onderliggende elementen hieronder vanuit het systeem en u kunt deze inhoud niet herstellen. Weet u zeker dat u dit item permanent wilt verwijderen?',
'recycle_bin_destroy_list' => 'Te vernietigen objecten',
'recycle_bin_restore_list' => 'Items te herstellen',
'recycle_bin_restore_confirm' => 'Deze actie herstelt het verwijderde item, inclusief alle onderliggende elementen, op hun oorspronkelijke locatie. Als de oorspronkelijke locatie sindsdien is verwijderd en zich nu in de prullenbak bevindt, zal ook het bovenliggende item moeten worden hersteld.',
'recycle_bin_restore_deleted_parent' => 'De bovenliggende map van dit item is ook verwijderd. Deze zal worden verwijderd totdat het bovenliggende item ook is hersteld.',
'recycle_bin_destroy_notification' => 'Verwijderde totaal :count items uit de prullenbak.',
'recycle_bin_restore_notification' => 'Herstelde totaal :count items uit de prullenbak.',
// Audit Log
'audit' => 'Audit Log',
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
'audit_event_filter' => 'Event Filter',
'audit_event_filter_no_filter' => 'No Filter',
'audit_deleted_item' => 'Deleted Item',
'audit_deleted_item_name' => 'Name: :name',
'audit_table_user' => 'User',
'audit_table_event' => 'Event',
'audit_table_related' => 'Related Item or Detail',
'audit_table_date' => 'Activity Date',
'audit_date_from' => 'Date Range From',
'audit_date_to' => 'Date Range To',
'audit_desc' => 'Dit auditlogboek toont een lijst met activiteiten die in het systeem zijn gedaan. Deze lijst is niet gefilterd, in tegenstelling tot vergelijkbare activiteitenlijsten in het systeem waar rechtenfilters worden toegepast.',
'audit_event_filter' => 'Gebeurtenis filter',
'audit_event_filter_no_filter' => 'Geen filter',
'audit_deleted_item' => 'Verwijderd Item',
'audit_deleted_item_name' => 'Naam: :name',
'audit_table_user' => 'Gebruiker',
'audit_table_event' => 'Gebeurtenis',
'audit_table_related' => 'Gerelateerd Item of Detail',
'audit_table_date' => 'Activiteit datum',
'audit_date_from' => 'Datum bereik vanaf',
'audit_date_to' => 'Datum bereik tot',
// Role Settings
'roles' => 'Rollen',
@@ -146,7 +146,7 @@ return [
'role_access_api' => 'Ga naar systeem API',
'role_manage_settings' => 'Beheer app instellingen',
'role_asset' => 'Asset Permissies',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'roles_system_warning' => 'Wees ervan bewust dat toegang tot een van de bovengenoemde drie machtigingen een gebruiker in staat kan stellen zijn eigen privileges of de privileges van anderen in het systeem te wijzigen. Wijs alleen rollen toe met deze machtigingen aan vertrouwde gebruikers.',
'role_asset_desc' => 'Deze permissies bepalen de standaardtoegangsrechten. Permissies op boeken, hoofdstukken en pagina\'s overschrijven deze instelling.',
'role_asset_admins' => 'Beheerders krijgen automatisch toegang tot alle inhoud, maar deze opties kunnen interface opties tonen of verbergen.',
'role_all' => 'Alles',
@@ -162,7 +162,7 @@ return [
'user_profile' => 'Gebruikersprofiel',
'users_add_new' => 'Gebruiker toevoegen',
'users_search' => 'Gebruiker zoeken',
'users_latest_activity' => 'Latest Activity',
'users_latest_activity' => 'Laatste activiteit',
'users_details' => 'Gebruiker details',
'users_details_desc' => 'Stel een weergavenaam en e-mailadres in voor deze gebruiker. Het e-mailadres zal worden gebruikt om in te loggen.',
'users_details_desc_no_email' => 'Stel een weergavenaam in voor deze gebruiker zodat anderen deze kunnen herkennen.',
@@ -173,17 +173,17 @@ return [
'users_send_invite_text' => 'U kunt ervoor kiezen om deze gebruiker een uitnodigingsmail te sturen waarmee hij zijn eigen wachtwoord kan instellen, anders kunt u zelf zijn wachtwoord instellen.',
'users_send_invite_option' => 'Stuur gebruiker uitnodigings e-mail',
'users_external_auth_id' => 'Externe authenticatie ID',
'users_external_auth_id_desc' => 'This is the ID used to match this user when communicating with your external authentication system.',
'users_external_auth_id_desc' => 'Dit is het ID dat gebruikt wordt om deze gebruiker te vergelijken met uw externe verificatiesysteem.',
'users_password_warning' => 'Vul onderstaande formulier alleen in als je het wachtwoord wilt aanpassen:',
'users_system_public' => 'De eigenschappen van deze gebruiker worden voor elke gastbezoeker gebruikt. Er kan niet mee ingelogd worden en wordt automatisch toegewezen.',
'users_delete' => 'Verwijder gebruiker',
'users_delete_named' => 'Verwijder gebruiker :userName',
'users_delete_warning' => 'Dit zal de gebruiker \':userName\' volledig uit het systeem verwijderen.',
'users_delete_confirm' => 'Weet je zeker dat je deze gebruiker wilt verwijderen?',
'users_migrate_ownership' => 'Migrate Ownership',
'users_migrate_ownership_desc' => 'Select a user here if you want another user to become the owner of all items currently owned by this user.',
'users_none_selected' => 'No user selected',
'users_delete_success' => 'User successfully removed',
'users_migrate_ownership' => 'Draag eigendom over',
'users_migrate_ownership_desc' => 'Selecteer een gebruiker hier als u wilt dat een andere gebruiker de eigenaar wordt van alle items die momenteel eigendom zijn van deze gebruiker.',
'users_none_selected' => 'Geen gebruiker geselecteerd',
'users_delete_success' => 'Gebruiker succesvol verwijderd',
'users_edit' => 'Bewerk Gebruiker',
'users_edit_profile' => 'Bewerk Profiel',
'users_edit_success' => 'Gebruiker succesvol bijgewerkt',
@@ -198,31 +198,31 @@ return [
'users_social_connected' => ':socialAccount account is succesvol aan je profiel gekoppeld.',
'users_social_disconnected' => ':socialAccount account is succesvol ontkoppeld van je profiel.',
'users_api_tokens' => 'API Tokens',
'users_api_tokens_none' => 'No API tokens have been created for this user',
'users_api_tokens_create' => 'Create Token',
'users_api_tokens_expires' => 'Expires',
'users_api_tokens_docs' => 'API Documentation',
'users_api_tokens_none' => 'Er zijn geen API-tokens gemaakt voor deze gebruiker',
'users_api_tokens_create' => 'Token aanmaken',
'users_api_tokens_expires' => 'Verloopt',
'users_api_tokens_docs' => 'API Documentatie',
// API Tokens
'user_api_token_create' => 'Create API Token',
'user_api_token_create' => 'API-token aanmaken',
'user_api_token_name' => 'Naam',
'user_api_token_name_desc' => 'Give your token a readable name as a future reminder of its intended purpose.',
'user_api_token_name_desc' => 'Geef je token een leesbare naam als een toekomstige herinnering aan het beoogde doel.',
'user_api_token_expiry' => 'Vervaldatum',
'user_api_token_expiry_desc' => 'Set a date at which this token expires. After this date, requests made using this token will no longer work. Leaving this field blank will set an expiry 100 years into the future.',
'user_api_token_create_secret_message' => 'Immediately after creating this token a "Token ID" & "Token Secret" will be generated and displayed. The secret will only be shown a single time so be sure to copy the value to somewhere safe and secure before proceeding.',
'user_api_token_create_success' => 'API token successfully created',
'user_api_token_update_success' => 'API token successfully updated',
'user_api_token_expiry_desc' => 'Stel een datum in waarop deze token verloopt. Na deze datum zullen aanvragen die met deze token zijn ingediend niet langer werken. Als dit veld leeg blijft, wordt een vervaldatum van 100 jaar in de toekomst ingesteld.',
'user_api_token_create_secret_message' => 'Onmiddellijk na het aanmaken van dit token zal een "Token ID" en "Token Geheim" worden gegenereerd en weergegeven. Het geheim zal slechts één keer getoond worden. Kopieer de waarde dus eerst op een veilige plaats voordat u doorgaat.',
'user_api_token_create_success' => 'API token succesvol aangemaakt',
'user_api_token_update_success' => 'API token succesvol bijgewerkt',
'user_api_token' => 'API Token',
'user_api_token_id' => 'Token ID',
'user_api_token_id_desc' => 'This is a non-editable system generated identifier for this token which will need to be provided in API requests.',
'user_api_token_secret' => 'Token Secret',
'user_api_token_secret_desc' => 'This is a system generated secret for this token which will need to be provided in API requests. This will only be displayed this one time so copy this value to somewhere safe and secure.',
'user_api_token_created' => 'Token created :timeAgo',
'user_api_token_updated' => 'Token updated :timeAgo',
'user_api_token_id_desc' => 'Dit is een niet bewerkbaar systeem gegenereerde id voor dit token dat moet worden verstrekt in API-verzoeken.',
'user_api_token_secret' => 'Geheime token sleutel',
'user_api_token_secret_desc' => 'Dit is een systeem gegenereerd geheim voor dit token dat moet worden verstrekt in API verzoeken. Dit wordt maar één keer weergegeven, dus kopieër deze waarde naar een veilige plaats.',
'user_api_token_created' => 'Token gemaakt :timeAgo',
'user_api_token_updated' => 'Token bijgewerkt :timeAgo',
'user_api_token_delete' => 'Token Verwijderen',
'user_api_token_delete_warning' => 'This will fully delete this API token with the name \':tokenName\' from the system.',
'user_api_token_delete_confirm' => 'Are you sure you want to delete this API token?',
'user_api_token_delete_success' => 'API token successfully deleted',
'user_api_token_delete_warning' => 'Dit zal de API-token met de naam \':tokenName\' volledig uit het systeem verwijderen.',
'user_api_token_delete_confirm' => 'Weet u zeker dat u deze API-token wilt verwijderen?',
'user_api_token_delete_success' => 'API-token succesvol verwijderd',
//! If editing translations files directly please ignore this in all
//! languages apart from en. Content will be auto-copied from en.
@@ -232,7 +232,7 @@ return [
'ar' => 'العربية',
'bg' => 'Bǎlgarski',
'bs' => 'Bosanski',
'ca' => 'Català',
'ca' => 'Catalaans',
'cs' => 'Česky',
'da' => 'Dansk',
'de' => 'Deutsch (Sie)',

View File

@@ -89,7 +89,7 @@ return [
'required_without' => ':attribute veld is verplicht wanneer :values niet ingesteld is.',
'required_without_all' => ':attribute veld is verplicht wanneer geen van :values ingesteld zijn.',
'same' => ':attribute en :other moeten overeenkomen.',
'safe_url' => 'The provided link may not be safe.',
'safe_url' => 'De opgegeven link is mogelijk niet veilig.',
'size' => [
'numeric' => ':attribute moet :size zijn.',
'file' => ':attribute moet :size kilobytes zijn.',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Strona nie została znaleziona',
'sorry_page_not_found' => 'Przepraszamy, ale strona której szukasz nie została znaleziona.',
'sorry_page_not_found_permission_warning' => 'Jeśli spodziewałeś się, że ta strona istnieje, prawdopodobnie nie masz uprawnień do jej wyświetlenia.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Powrót do strony głównej',
'error_occurred' => 'Wystąpił błąd',
'app_down' => ':appName jest aktualnie wyłączona',

View File

@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'Caminho',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Expandir Menu de Cabeçalho',
'profile_menu' => 'Menu de Perfil',
'view_profile' => 'Visualizar Perfil',
'edit_profile' => 'Editar Perfil',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Informações',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Separador: Mostrar Informação Secundária',
'tab_content' => 'Conteúdo',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Separador: Mostrar Conteúdo Primário',
// Email Content
'email_action_help' => 'Se estiver com problemas ao carregar no botão ":actionText", copie e cole o URL abaixo no seu navegador:',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Página Não Encontrada',
'sorry_page_not_found' => 'Desculpe, a página que procura não foi encontrada.',
'sorry_page_not_found_permission_warning' => 'Se esperava que esta página existisse, talvez não tenha permissão para visualizá-la.',
'image_not_found' => 'Imagem não encontrada',
'image_not_found_subtitle' => 'Desculpe, o arquivo de imagem que estava à procura não foi encontrado.',
'image_not_found_details' => 'Se estava à espera que a mesma existisse é possível que tenha sido eliminada.',
'return_home' => 'Regressar à página inicial',
'error_occurred' => 'Ocorreu um Erro',
'app_down' => ':appName está fora do ar de momento',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Página Não Encontrada',
'sorry_page_not_found' => 'Desculpe, a página que você está procurando não pôde ser encontrada.',
'sorry_page_not_found_permission_warning' => 'Se você esperava que esta página existisse, talvez você não tenha permissão para visualizá-la.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Retornar à página inicial',
'error_occurred' => 'Ocorreu um Erro',
'app_down' => ':appName está fora do ar no momento',

View File

@@ -65,7 +65,7 @@ return [
'breadcrumb' => 'Навигация',
// Header
'header_menu_expand' => 'Expand Header Menu',
'header_menu_expand' => 'Развернуть меню заголовка',
'profile_menu' => 'Меню профиля',
'view_profile' => 'Посмотреть профиль',
'edit_profile' => 'Редактировать профиль',
@@ -74,9 +74,9 @@ return [
// Layout tabs
'tab_info' => 'Информация',
'tab_info_label' => 'Tab: Show Secondary Information',
'tab_info_label' => 'Вкладка: Показать вторичную информацию',
'tab_content' => 'Содержание',
'tab_content_label' => 'Tab: Show Primary Content',
'tab_content_label' => 'Вкладка: Показать основной контент',
// Email Content
'email_action_help' => 'Если у вас возникли проблемы с нажатием кнопки \':actionText\', то скопируйте и вставьте указанный URL-адрес в свой браузер:',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Страница не найдена',
'sorry_page_not_found' => 'Извините, страница, которую вы искали, не найдена.',
'sorry_page_not_found_permission_warning' => 'Если вы ожидали что страница существует, возможно у вас нет прав для её просмотра.',
'image_not_found' => 'Изображение не найдено',
'image_not_found_subtitle' => 'К сожалению, файл изображения, который вы искали, не найден.',
'image_not_found_details' => 'Возможно данное изображение было удалено.',
'return_home' => 'вернуться на главную страницу',
'error_occurred' => 'Произошла ошибка',
'app_down' => ':appName в данный момент не доступно',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Stránka nenájdená',
'sorry_page_not_found' => 'Prepáčte, stránka ktorú hľadáte nebola nájdená.',
'sorry_page_not_found_permission_warning' => 'If you expected this page to exist, you might not have permission to view it.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Vrátiť sa domov',
'error_occurred' => 'Nastala chyba',
'app_down' => ':appName je momentálne nedostupná',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Strani ni mogoče najti',
'sorry_page_not_found' => 'Oprostite, strani ki jo iščete, ni mogoče najti.',
'sorry_page_not_found_permission_warning' => 'Če pričakujete, da ta stran obstaja, mogoče nimate pravic ogleda zanjo.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Vrni se domov',
'error_occurred' => 'Prišlo je do napake',
'app_down' => ':appName trenutno ni dosegljiva',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Sidan hittades inte',
'sorry_page_not_found' => 'Tyvärr gick det inte att hitta sidan du söker.',
'sorry_page_not_found_permission_warning' => 'Om du förväntade dig att denna sida skulle existera, kanske du inte har behörighet att se den.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Återvänd till startsidan',
'error_occurred' => 'Ett fel inträffade',
'app_down' => ':appName är nere just nu',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Sayfa Bulunamadı',
'sorry_page_not_found' => 'Üzgünüz, aradığınız sayfa bulunamıyor.',
'sorry_page_not_found_permission_warning' => 'Bu sayfanın var olduğunu düşünüyorsanız, görüntüleme iznine sahip olmayabilirsiniz.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Ana sayfaya dön',
'error_occurred' => 'Bir Hata Oluştu',
'app_down' => ':appName şu anda erişilemez durumda',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Сторінку не знайдено',
'sorry_page_not_found' => 'Вибачте, сторінку, яку ви шукали, не знайдено.',
'sorry_page_not_found_permission_warning' => 'Якщо ви очікували що ця сторінки існує можливо у вас немає дозволу на її перегляд.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Повернутися на головну',
'error_occurred' => 'Виникла помилка',
'app_down' => ':appName зараз недоступний',

View File

@@ -83,6 +83,9 @@ return [
'404_page_not_found' => 'Không Tìm Thấy Trang',
'sorry_page_not_found' => 'Xin lỗi, Không tìm thấy trang bạn đang tìm kiếm.',
'sorry_page_not_found_permission_warning' => 'Nếu trang bạn tìm kiếm tồn tại, có thể bạn đang không có quyền truy cập.',
'image_not_found' => 'Image Not Found',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Quay lại trang chủ',
'error_occurred' => 'Đã xảy ra lỗi',
'app_down' => ':appName hiện đang ngoại tuyến',

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