mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-05 16:49:47 +03:00
Compare commits
63 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86090a694f | ||
|
|
1ee8287c73 | ||
|
|
c7322a71f7 | ||
|
|
2c3523f6a1 | ||
|
|
8eb98cd591 | ||
|
|
0f9ba21b05 | ||
|
|
7a059a5e90 | ||
|
|
e5fc104aff | ||
|
|
d0ed165630 | ||
|
|
68ef6a842f | ||
|
|
c1f070a136 | ||
|
|
c2cc1ec5e5 | ||
|
|
386925ad8e | ||
|
|
243c1db408 | ||
|
|
834f8e7046 | ||
|
|
32e3399334 | ||
|
|
9e7bcacf8c | ||
|
|
7be7d7d1e7 | ||
|
|
04c1d0e071 | ||
|
|
ab62e0f75b | ||
|
|
d85f99c87c | ||
|
|
c42b6aece9 | ||
|
|
7f8f3080c5 | ||
|
|
9cf4191079 | ||
|
|
b8e2d75014 | ||
|
|
f522f16526 | ||
|
|
b010d2663d | ||
|
|
a083ceaf44 | ||
|
|
95798a2eba | ||
|
|
43b6633183 | ||
|
|
c50ac022a8 | ||
|
|
a3d36237e2 | ||
|
|
a2be61f26d | ||
|
|
79f5b579d7 | ||
|
|
66ecee1e26 | ||
|
|
02e86ea18f | ||
|
|
723dbe1da7 | ||
|
|
65fe89441f | ||
|
|
2093122ac5 | ||
|
|
ab584c93bc | ||
|
|
2d8698a218 | ||
|
|
454fb883a2 | ||
|
|
fc504a3d2c | ||
|
|
dd805503fb | ||
|
|
f24336f77a | ||
|
|
aa6a752e38 | ||
|
|
83b576eb19 | ||
|
|
c4e31a0d5e | ||
|
|
f8cdd6e80d | ||
|
|
6f4a6ab8ea | ||
|
|
9c4b6f36f1 | ||
|
|
140aed3586 | ||
|
|
cf87b78636 | ||
|
|
ec827da5a5 | ||
|
|
20528a2442 | ||
|
|
78886b1e67 | ||
|
|
d9debaf032 | ||
|
|
b3c47649b4 | ||
|
|
70be28d22c | ||
|
|
9df4dee1b2 | ||
|
|
60ffe6a993 | ||
|
|
0c880def5e | ||
|
|
034478409e |
@@ -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/
|
||||
|
||||
9
.github/translators.txt
vendored
9
.github/translators.txt
vendored
@@ -54,6 +54,7 @@ Name :: Languages
|
||||
@benediktvolke :: German
|
||||
@Baptistou :: French
|
||||
@arcoai :: Spanish
|
||||
@Jokuna :: Korean
|
||||
cipi1965 :: Italian
|
||||
Mykola Ronik (Mantikor) :: Ukrainian
|
||||
furkanoyk :: Turkish
|
||||
@@ -156,3 +157,11 @@ nikservik :: Ukrainian; Russian; Polish
|
||||
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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
@@ -212,7 +212,7 @@ class PageRepo
|
||||
if (!empty($input['markdown'] ?? '')) {
|
||||
$pageContent->setNewMarkdown($input['markdown']);
|
||||
} else {
|
||||
$pageContent->setNewHTML($input['html']);
|
||||
$pageContent->setNewHTML($input['html'] ?? '');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ class HomeController extends Controller
|
||||
*/
|
||||
public function customHeadContent()
|
||||
{
|
||||
return view('partials.custom-head-content');
|
||||
return view('partials.custom-head');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -202,6 +202,7 @@ class AttachmentService
|
||||
try {
|
||||
$storage->put($attachmentPath, $attachmentData);
|
||||
} catch (Exception $e) {
|
||||
\Log::error('Error when attempting file upload:' . $e->getMessage());
|
||||
throw new FileUploadException(trans('errors.path_not_writable', ['filePath' => $attachmentPath]));
|
||||
}
|
||||
|
||||
|
||||
@@ -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,9 +107,9 @@ 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]));
|
||||
}
|
||||
|
||||
@@ -131,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.
|
||||
*/
|
||||
@@ -190,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);
|
||||
|
||||
|
||||
|
||||
71
app/Util/HtmlContentFilter.php
Normal file
71
app/Util/HtmlContentFilter.php
Normal 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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
661
composer.lock
generated
661
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -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');
|
||||
|
||||
@@ -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');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 = [];
|
||||
|
||||
@@ -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
1277
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
46
public/dist/app.js
vendored
46
public/dist/app.js
vendored
File diff suppressed because one or more lines are too long
2
public/dist/export-styles.css
vendored
2
public/dist/export-styles.css
vendored
File diff suppressed because one or more lines are too long
2
public/dist/styles.css
vendored
2
public/dist/styles.css
vendored
File diff suppressed because one or more lines are too long
@@ -12,6 +12,7 @@ class DropDown {
|
||||
this.menu = this.$refs.menu;
|
||||
this.toggle = this.$refs.toggle;
|
||||
this.moveMenu = this.$opts.moveMenu;
|
||||
this.bubbleEscapes = this.$opts.bubbleEscapes === 'true';
|
||||
|
||||
this.direction = (document.dir === 'rtl') ? 'right' : 'left';
|
||||
this.body = document.body;
|
||||
@@ -137,7 +138,9 @@ class DropDown {
|
||||
} else if (event.key === 'Escape') {
|
||||
this.hide();
|
||||
this.toggle.focus();
|
||||
event.stopPropagation();
|
||||
if (!this.bubbleEscapes) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
}
|
||||
};
|
||||
this.container.addEventListener('keydown', keyboardNavigation);
|
||||
|
||||
@@ -1,31 +1,41 @@
|
||||
|
||||
class HeaderMobileToggle {
|
||||
|
||||
constructor(elem) {
|
||||
this.elem = elem;
|
||||
this.toggleButton = elem.querySelector('.mobile-menu-toggle');
|
||||
this.menu = elem.querySelector('.header-links');
|
||||
this.open = false;
|
||||
setup() {
|
||||
this.elem = this.$el;
|
||||
this.toggleButton = this.$refs.toggle;
|
||||
this.menu = this.$refs.menu;
|
||||
|
||||
this.open = false;
|
||||
this.toggleButton.addEventListener('click', this.onToggle.bind(this));
|
||||
this.onWindowClick = this.onWindowClick.bind(this);
|
||||
this.onKeyDown = this.onKeyDown.bind(this);
|
||||
}
|
||||
|
||||
onToggle(event) {
|
||||
this.open = !this.open;
|
||||
this.menu.classList.toggle('show', this.open);
|
||||
this.toggleButton.setAttribute('aria-expanded', this.open ? 'true' : 'false');
|
||||
if (this.open) {
|
||||
this.elem.addEventListener('keydown', this.onKeyDown);
|
||||
window.addEventListener('click', this.onWindowClick)
|
||||
} else {
|
||||
this.elem.removeEventListener('keydown', this.onKeyDown);
|
||||
window.removeEventListener('click', this.onWindowClick)
|
||||
}
|
||||
event.stopPropagation();
|
||||
}
|
||||
|
||||
onKeyDown(event) {
|
||||
if (event.code === 'Escape') {
|
||||
this.onToggle(event);
|
||||
}
|
||||
}
|
||||
|
||||
onWindowClick(event) {
|
||||
this.onToggle(event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = HeaderMobileToggle;
|
||||
export default HeaderMobileToggle;
|
||||
@@ -1,8 +1,9 @@
|
||||
|
||||
class TriLayout {
|
||||
|
||||
constructor(elem) {
|
||||
this.elem = elem;
|
||||
setup() {
|
||||
this.container = this.$refs.container;
|
||||
this.tabs = this.$manyRefs.tab;
|
||||
|
||||
this.lastLayoutType = 'none';
|
||||
this.onDestroy = null;
|
||||
@@ -43,13 +44,12 @@ class TriLayout {
|
||||
}
|
||||
|
||||
setupMobile() {
|
||||
const layoutTabs = document.querySelectorAll('[tri-layout-mobile-tab]');
|
||||
for (let tab of layoutTabs) {
|
||||
for (const tab of this.tabs) {
|
||||
tab.addEventListener('click', this.mobileTabClick);
|
||||
}
|
||||
|
||||
this.onDestroy = () => {
|
||||
for (let tab of layoutTabs) {
|
||||
for (const tab of this.tabs) {
|
||||
tab.removeEventListener('click', this.mobileTabClick);
|
||||
}
|
||||
}
|
||||
@@ -65,7 +65,7 @@ class TriLayout {
|
||||
* @param event
|
||||
*/
|
||||
mobileTabClick(event) {
|
||||
const tab = event.target.getAttribute('tri-layout-mobile-tab');
|
||||
const tab = event.target.dataset.tab;
|
||||
this.showTab(tab);
|
||||
}
|
||||
|
||||
@@ -79,21 +79,21 @@ class TriLayout {
|
||||
|
||||
/**
|
||||
* Show the given tab
|
||||
* @param tabName
|
||||
* @param {String} tabName
|
||||
* @param {Boolean }scroll
|
||||
*/
|
||||
showTab(tabName, scroll = true) {
|
||||
this.scrollCache[this.lastTabShown] = document.documentElement.scrollTop;
|
||||
|
||||
// Set tab status
|
||||
const tabs = document.querySelectorAll('.tri-layout-mobile-tab');
|
||||
for (let tab of tabs) {
|
||||
const isActive = (tab.getAttribute('tri-layout-mobile-tab') === tabName);
|
||||
tab.classList.toggle('active', isActive);
|
||||
for (const tab of this.tabs) {
|
||||
const isActive = (tab.dataset.tab === tabName);
|
||||
tab.setAttribute('aria-selected', isActive ? 'true' : 'false');
|
||||
}
|
||||
|
||||
// Toggle section
|
||||
const showInfo = (tabName === 'info');
|
||||
this.elem.classList.toggle('show-info', showInfo);
|
||||
this.container.classList.toggle('show-info', showInfo);
|
||||
|
||||
// Set the scroll position from cache
|
||||
if (scroll) {
|
||||
|
||||
@@ -152,8 +152,8 @@ function codePlugin() {
|
||||
return;
|
||||
}
|
||||
|
||||
let lang = selectedNode.hasAttribute('data-lang') ? selectedNode.getAttribute('data-lang') : '';
|
||||
let currentCode = selectedNode.querySelector('textarea').textContent;
|
||||
const lang = selectedNode.hasAttribute('data-lang') ? selectedNode.getAttribute('data-lang') : '';
|
||||
const currentCode = selectedNode.querySelector('textarea').textContent;
|
||||
|
||||
window.components.first('code-editor').open(currentCode, lang, (code, lang) => {
|
||||
const editorElem = selectedNode.querySelector('.CodeMirror');
|
||||
@@ -225,22 +225,23 @@ function codePlugin() {
|
||||
return elem.contentEditable !== "false";
|
||||
});
|
||||
|
||||
if (!codeSamples.length) return;
|
||||
editor.undoManager.transact(function () {
|
||||
codeSamples.each((index, elem) => {
|
||||
Code.wysiwygView(elem);
|
||||
});
|
||||
codeSamples.each((index, elem) => {
|
||||
Code.wysiwygView(elem);
|
||||
});
|
||||
}
|
||||
|
||||
editor.on('init', function() {
|
||||
// Parse code mirror instances on init, but delay a little so this runs after
|
||||
// initial styles are fetched into the editor.
|
||||
parseCodeMirrorInstances();
|
||||
editor.undoManager.transact(function () {
|
||||
parseCodeMirrorInstances();
|
||||
});
|
||||
// Parsed code mirror blocks when content is set but wait before setting this handler
|
||||
// to avoid any init 'SetContent' events.
|
||||
setTimeout(() => {
|
||||
editor.on('SetContent', parseCodeMirrorInstances);
|
||||
editor.on('SetContent', () => {
|
||||
setTimeout(parseCodeMirrorInstances, 100);
|
||||
});
|
||||
}, 200);
|
||||
});
|
||||
|
||||
|
||||
@@ -149,8 +149,8 @@ async function getResponseContent(response) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const responseContentType = response.headers.get('Content-Type');
|
||||
const subType = responseContentType.split('/').pop();
|
||||
const responseContentType = response.headers.get('Content-Type') || '';
|
||||
const subType = responseContentType.split(';')[0].split('/').pop();
|
||||
|
||||
if (subType === 'javascript' || subType === 'json') {
|
||||
return await response.json();
|
||||
|
||||
@@ -33,7 +33,7 @@ return [
|
||||
'book_delete' => 'تم حذف الكتاب',
|
||||
'book_delete_notification' => 'تم حذف الكتاب بنجاح',
|
||||
'book_sort' => 'تم سرد الكتاب',
|
||||
'book_sort_notification' => 'تمت إعادة سرد الكتاب بنجاح',
|
||||
'book_sort_notification' => 'أُعِيدَ سرد الكتاب بنجاح',
|
||||
|
||||
// Bookshelves
|
||||
'bookshelf_create' => 'تم إنشاء رف الكتب',
|
||||
|
||||
@@ -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' => 'كلمة سر المستخدم',
|
||||
|
||||
@@ -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,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'شريط التنقل',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'عرض القائمة',
|
||||
'profile_menu' => 'قائمة ملف التعريف',
|
||||
'view_profile' => 'عرض الملف الشخصي',
|
||||
'edit_profile' => 'تعديل الملف الشخصي',
|
||||
@@ -73,14 +74,16 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'معلومات',
|
||||
'tab_info_label' => 'تبويب: إظهار المعلومات الثانوية',
|
||||
'tab_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' => 'اتفاقية شروط الخدمة',
|
||||
];
|
||||
|
||||
@@ -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' => 'تم حذف الصور',
|
||||
|
||||
@@ -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' => 'لايمكن حذف آخر مراجعة.'
|
||||
];
|
||||
|
||||
@@ -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 لا يعمل حالياً',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Трасиране',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Профил меню',
|
||||
'view_profile' => 'Разглеждане на профил',
|
||||
'edit_profile' => 'Редактиране на профила',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Информация',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Съдържание',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Ако имате проблеми с бутона ":actionText" по-горе, копирайте и поставете URL адреса по-долу в уеб браузъра си:',
|
||||
|
||||
@@ -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 не е достъпно в момента',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Navigacijske stavke',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Meni profila',
|
||||
'view_profile' => 'Pogledaj profil',
|
||||
'edit_profile' => 'Izmjeni profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informacije',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Sadržaj',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Ukoliko imate poteškoća sa pritiskom na ":actionText" dugme, kopirajte i zaljepite URL koji se nalazi ispod u vaš web pretraživač:',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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.',
|
||||
|
||||
|
||||
@@ -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ó',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Ruta de navegació',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menú del perfil',
|
||||
'view_profile' => 'Mostra el perfil',
|
||||
'edit_profile' => 'Edita el perfil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informació',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Contingut',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Si teniu problemes per fer clic al botó ":actionText", copieu i enganxeu l\'URL següent al vostre navegador web:',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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!',
|
||||
|
||||
];
|
||||
|
||||
@@ -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.',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Drobečková navigace',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Nabídka profilu',
|
||||
'view_profile' => 'Zobrazit profil',
|
||||
'edit_profile' => 'Upravit profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informace',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Obsah',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Pokud se vám nedaří kliknout na tlačítko „:actionText“, zkopírujte a vložte níže uvedenou URL do vašeho webového prohlížeče:',
|
||||
|
||||
@@ -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á',
|
||||
|
||||
@@ -20,7 +20,7 @@ return [
|
||||
'chapter_create' => 'oprettede kapitel',
|
||||
'chapter_create_notification' => 'Kapitel blev oprettet',
|
||||
'chapter_update' => 'opdaterede kapitel',
|
||||
'chapter_update_notification' => 'Kapitel blev opdateret',
|
||||
'chapter_update_notification' => 'Kapitlet blev opdateret',
|
||||
'chapter_delete' => 'slettede kapitel',
|
||||
'chapter_delete_notification' => 'Kapitel blev slettet',
|
||||
'chapter_move' => 'flyttede kapitel',
|
||||
@@ -45,5 +45,5 @@ return [
|
||||
|
||||
// Other
|
||||
'commented_on' => 'kommenterede til',
|
||||
'permissions_update' => 'updated permissions',
|
||||
'permissions_update' => 'Tilladelser opdateret',
|
||||
];
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
*/
|
||||
return [
|
||||
|
||||
'failed' => 'Det indtastede stemmer ikke overens med vores registrering.',
|
||||
'throttle' => 'For mange mislykkede loginforsøg. Prøv igen om :seconds seconds.',
|
||||
'failed' => 'Dee indtastede brugeroplysninger stemmer ikke overens med vores registreringer.',
|
||||
'throttle' => 'For mange mislykkede loginforsøg. Prøv igen om :seconds sekunder.',
|
||||
|
||||
// Login & Register
|
||||
'sign_up' => 'Registrér',
|
||||
@@ -21,11 +21,11 @@ return [
|
||||
'email' => 'E-mail',
|
||||
'password' => 'Adgangskode',
|
||||
'password_confirm' => 'Bekræft adgangskode',
|
||||
'password_hint' => 'Skal være på mindst 8 karakterer',
|
||||
'password_hint' => 'Skal være på mindst 7 karakterer',
|
||||
'forgot_password' => 'Glemt Adgangskode?',
|
||||
'remember_me' => 'Husk Mig',
|
||||
'remember_me' => 'Husk mig',
|
||||
'ldap_email_hint' => 'Angiv venligst din kontos e-mail.',
|
||||
'create_account' => 'Opret Konto',
|
||||
'create_account' => 'Opret konto',
|
||||
'already_have_account' => 'Har du allerede en konto?',
|
||||
'dont_have_account' => 'Har du ikke en konto?',
|
||||
'social_login' => 'Social Log ind',
|
||||
|
||||
@@ -33,7 +33,7 @@ return [
|
||||
'copy' => 'Kopier',
|
||||
'reply' => 'Besvar',
|
||||
'delete' => 'Slet',
|
||||
'delete_confirm' => 'Confirm Deletion',
|
||||
'delete_confirm' => 'Bekræft sletning',
|
||||
'search' => 'Søg',
|
||||
'search_clear' => 'Ryd søgning',
|
||||
'reset' => 'Nulstil',
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Sorter stigende',
|
||||
'sort_descending' => 'Sorter faldende',
|
||||
'sort_name' => 'Navn',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Standard',
|
||||
'sort_created_at' => 'Oprettelsesdato',
|
||||
'sort_updated_at' => 'Opdateringsdato',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Brødkrumme',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Udvid header menu',
|
||||
'profile_menu' => 'Profilmenu',
|
||||
'view_profile' => 'Vis profil',
|
||||
'edit_profile' => 'Redigér Profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Faneblad: Vis sekundær information',
|
||||
'tab_content' => 'Indhold',
|
||||
'tab_content_label' => 'Faneblad: Vis primær indhold',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Hvis du har problemer med at trykke på ":actionText" knappen, prøv at kopiere og indsætte linket herunder ind i din webbrowser:',
|
||||
@@ -81,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' => 'Privatlivspolitik',
|
||||
'terms_of_service' => 'Tjenestevilkår',
|
||||
];
|
||||
|
||||
@@ -15,7 +15,7 @@ return [
|
||||
'image_load_more' => 'Indlæse mere',
|
||||
'image_image_name' => 'Billednavn',
|
||||
'image_delete_used' => 'Dette billede er brugt på siderne nedenfor.',
|
||||
'image_delete_confirm_text' => 'Are you sure you want to delete this image?',
|
||||
'image_delete_confirm_text' => 'Er du sikker på at du vil slette dette billede?',
|
||||
'image_select_image' => 'Vælg billede',
|
||||
'image_dropzone' => 'Træk-og-slip billede eller klik her for at uploade',
|
||||
'images_deleted' => 'Billede slettet',
|
||||
@@ -29,6 +29,6 @@ return [
|
||||
'code_editor' => 'Rediger kode',
|
||||
'code_language' => 'Kodesprog',
|
||||
'code_content' => 'Kodeindhold',
|
||||
'code_session_history' => 'Session History',
|
||||
'code_session_history' => 'Sessionshistorik',
|
||||
'code_save' => 'Gem kode',
|
||||
];
|
||||
|
||||
@@ -22,7 +22,7 @@ return [
|
||||
'meta_created_name' => 'Oprettet :timeLength af :user',
|
||||
'meta_updated' => 'Opdateret :timeLength',
|
||||
'meta_updated_name' => 'Opdateret :timeLength af :user',
|
||||
'meta_owned_name' => 'Owned by :user',
|
||||
'meta_owned_name' => 'Ejet af :user',
|
||||
'entity_select' => 'Vælg emne',
|
||||
'images' => 'Billeder',
|
||||
'my_recent_drafts' => 'Mine seneste kladder',
|
||||
@@ -40,7 +40,7 @@ return [
|
||||
'permissions_intro' => 'Når de er aktiveret, vil disse tilladelser have prioritet over alle indstillede rolletilladelser.',
|
||||
'permissions_enable' => 'Aktivér tilpassede tilladelser',
|
||||
'permissions_save' => 'Gem tilladelser',
|
||||
'permissions_owner' => 'Owner',
|
||||
'permissions_owner' => 'Ejer',
|
||||
|
||||
// Search
|
||||
'search_results' => 'Søgeresultater',
|
||||
@@ -49,8 +49,8 @@ return [
|
||||
'search_no_pages' => 'Ingen sider matchede søgning',
|
||||
'search_for_term' => 'Søgning for :term',
|
||||
'search_more' => 'Flere resultater',
|
||||
'search_advanced' => 'Advanced Search',
|
||||
'search_terms' => 'Search Terms',
|
||||
'search_advanced' => 'Avanceret søgning',
|
||||
'search_terms' => 'Søgeord',
|
||||
'search_content_type' => 'Indholdstype',
|
||||
'search_exact_matches' => 'Nøjagtige matches',
|
||||
'search_tags' => 'Tagsøgninger',
|
||||
@@ -60,7 +60,7 @@ return [
|
||||
'search_permissions_set' => 'Rettigheders sæt',
|
||||
'search_created_by_me' => 'Oprettet af mig',
|
||||
'search_updated_by_me' => 'Opdateret af mig',
|
||||
'search_owned_by_me' => 'Owned by me',
|
||||
'search_owned_by_me' => 'Ejet af mig',
|
||||
'search_date_options' => 'Datoindstillinger',
|
||||
'search_updated_before' => 'Opdateret før',
|
||||
'search_updated_after' => 'Opdateret efter',
|
||||
@@ -149,7 +149,7 @@ return [
|
||||
'chapters_create' => 'Opret nyt kapitel',
|
||||
'chapters_delete' => 'Slet kapitel',
|
||||
'chapters_delete_named' => 'Slet kapitel :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' => 'Dette vil slette kapitlet med navnet \':chapterName\'. Alle sider i dette kapitel vil også blive slettet.',
|
||||
'chapters_delete_confirm' => 'Er du sikker på du vil slette dette kapitel?',
|
||||
'chapters_edit' => 'Rediger kapitel',
|
||||
'chapters_edit_named' => 'Rediger kapitel :chapterName',
|
||||
@@ -211,7 +211,7 @@ return [
|
||||
'pages_revisions' => 'Sidserevisioner',
|
||||
'pages_revisions_named' => 'Siderevisioner for :pageName',
|
||||
'pages_revision_named' => 'Siderevision for :pageName',
|
||||
'pages_revision_restored_from' => 'Restored from #:id; :summary',
|
||||
'pages_revision_restored_from' => 'Genoprettet fra #:id; :summary',
|
||||
'pages_revisions_created_by' => 'Oprettet af',
|
||||
'pages_revisions_date' => 'Revisionsdato',
|
||||
'pages_revisions_number' => '#',
|
||||
@@ -260,7 +260,7 @@ return [
|
||||
'attachments_upload' => 'Upload fil',
|
||||
'attachments_link' => 'Vedhæft link',
|
||||
'attachments_set_link' => 'Sæt link',
|
||||
'attachments_delete' => 'Are you sure you want to delete this attachment?',
|
||||
'attachments_delete' => 'Er du sikker på at du vil slette denne vedhæftning?',
|
||||
'attachments_dropzone' => 'Slip filer eller klik her for at vedhæfte en fil',
|
||||
'attachments_no_files' => 'Ingen filer er blevet overført',
|
||||
'attachments_explain_link' => 'Du kan vedhæfte et link, hvis du foretrækker ikke at uploade en fil. Dette kan være et link til en anden side eller et link til en fil i skyen.',
|
||||
@@ -269,7 +269,7 @@ return [
|
||||
'attachments_link_url' => 'Link til filen',
|
||||
'attachments_link_url_hint' => 'Adresse (URL) på side eller fil',
|
||||
'attach' => 'Vedhæft',
|
||||
'attachments_insert_link' => 'Add Attachment Link to Page',
|
||||
'attachments_insert_link' => 'Tilføj vedhæftningslink til side',
|
||||
'attachments_edit_file' => 'Rediger fil',
|
||||
'attachments_edit_file_name' => 'Filnavn',
|
||||
'attachments_edit_drop_upload' => 'Slip filer eller klik her for at uploade og overskrive',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -9,13 +9,13 @@ return [
|
||||
// Common Messages
|
||||
'settings' => 'Indstillinger',
|
||||
'settings_save' => 'Gem indstillinger',
|
||||
'settings_save_success' => 'Indstillinger gemt',
|
||||
'settings_save_success' => 'Indstillingerne blev gemt',
|
||||
|
||||
// App Settings
|
||||
'app_customization' => 'Tilpasning',
|
||||
'app_features_security' => 'Funktioner & sikkerhed',
|
||||
'app_name' => 'Programnavn',
|
||||
'app_name_desc' => 'Dette er navnet vist i headeren og i systemafsendte E-Mails.',
|
||||
'app_features_security' => 'Funktionalitet og sikkerhed',
|
||||
'app_name' => 'Applikationsnavn',
|
||||
'app_name_desc' => 'Dette navn vises i headeren og i alle e-mails sendt fra systemet.',
|
||||
'app_name_header' => 'Vis navn i header',
|
||||
'app_public_access' => 'Offentlig adgang',
|
||||
'app_public_access_desc' => 'Aktivering af denne funktion giver besøgende, der ikke er logget ind, adgang til indhold i din BookStack-instans.',
|
||||
@@ -24,24 +24,24 @@ return [
|
||||
'app_public_viewing' => 'Tillad offentlig visning?',
|
||||
'app_secure_images' => 'Højere sikkerhed for billeduploads',
|
||||
'app_secure_images_toggle' => 'Aktiver højere sikkerhed for billeduploads',
|
||||
'app_secure_images_desc' => 'Af ydeevneårsager er alle billeder offentlige. Denne funktion tilføjer en tilfældig, vanskelig at gætte streng foran billed-Url\'er. Sørg for, at mappeindekser ikke er aktiveret for at forhindre nem adgang.',
|
||||
'app_secure_images_desc' => 'Af performanceårsager er alle billeder offentlige. Denne funktion tilføjer en tilfældig, vanskelig at gætte streng foran billed-url\'er. Sørg for, at mappeindeksering ikke er aktiveret for at forhindre nem adgang.',
|
||||
'app_editor' => 'Sideeditor',
|
||||
'app_editor_desc' => 'Vælg hvilken editor der skal bruges af alle brugere til at redigere sider.',
|
||||
'app_custom_html' => 'Tilpasset HTML head-indhold',
|
||||
'app_custom_html_desc' => 'Al indhold tilføjet her, vil blive indsat i bunden af <head> sektionen på alle sider. Dette er brugbart til overskrivning af styling og tilføjelse af analysekode.',
|
||||
'app_custom_html_disabled_notice' => 'Brugerdefineret HTML-head indhold er deaktiveret på denne indstillingsside for at sikre, at ødelæggende ændringer kan rettes.',
|
||||
'app_logo' => 'Programlogo',
|
||||
'app_logo_desc' => 'Dette billede skal være 43px højt. <br> Større billeder vil blive skaleret ned.',
|
||||
'app_primary_color' => 'Primær programfarve',
|
||||
'app_custom_html' => 'Tilpasset HTML head indhold',
|
||||
'app_custom_html_desc' => 'Alt indhold tilføjet her, vil blive indsat i bunden af <head> sektionen på alle sider. Dette er brugbart til overskrivning af styles og tilføjelse af analytics kode.',
|
||||
'app_custom_html_disabled_notice' => 'Brugerdefineret HTML head indhold er deaktiveret på denne indstillingsside for at, at ændringer kan rulles tilbage.',
|
||||
'app_logo' => 'Applikationslogo',
|
||||
'app_logo_desc' => 'Dette billede skal være 43px højt. <br>Store billeder vil blive skaleret ned.',
|
||||
'app_primary_color' => 'Primær applikationsfarve',
|
||||
'app_primary_color_desc' => 'Sætter den primære farve for applikationen herunder banneret, knapper og links.',
|
||||
'app_homepage' => 'Programforside',
|
||||
'app_homepage_desc' => 'Vælg en visning, der skal vises på startsiden i stedet for standardvisningen. Sidetilladelser ignoreres for valgte sider.',
|
||||
'app_homepage' => 'Applikationsforside',
|
||||
'app_homepage_desc' => 'Vælg en visning, der skal vises på forsiden i stedet for standardvisningen. Sidetilladelser ignoreres for de valgte sider.',
|
||||
'app_homepage_select' => 'Vælg en side',
|
||||
'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' => 'Footer links',
|
||||
'app_footer_links_desc' => 'Tilføj links til footeren. Linksene vil blive vist nederst på de fleste sider, inkluderet sider, som ikke kræver login. Brug en label med "trans::<key>" for at bruge systemdefinerede oversættelser. For eksempel: "trans::common.privacy_policy" giver den oversatte tekst "Privacy Policy" og "trans::common.terms_of_service" vil give den oversatte tekst "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_add' => 'Tilføj footer link',
|
||||
'app_disable_comments' => 'Deaktiver kommentarer',
|
||||
'app_disable_comments_toggle' => 'Deaktiver kommentar',
|
||||
'app_disable_comments_desc' => 'Deaktiverer kommentarer på tværs af alle sider i applikationen. <br> Eksisterende kommentarer vises ikke.',
|
||||
@@ -73,7 +73,7 @@ return [
|
||||
'maint' => 'Vedligeholdelse',
|
||||
'maint_image_cleanup' => 'Ryd op i billeder',
|
||||
'maint_image_cleanup_desc' => "Scanner side & revisionsindhold for at kontrollere, hvilke billeder og tegninger, der i øjeblikket er i brug, og hvilke billeder, der er overflødige. Sørg for, at du opretter en komplet database og billedbackup, før du kører dette.",
|
||||
'maint_delete_images_only_in_revisions' => 'Also delete images that only exist in old page revisions',
|
||||
'maint_delete_images_only_in_revisions' => 'Slet også billeder, der kun findes i gamle siderevisioner',
|
||||
'maint_image_cleanup_run' => 'Kør Oprydning',
|
||||
'maint_image_cleanup_warning' => 'der blev fundet :count potentielt ubrugte billeder. Er du sikker på, at du vil slette disse billeder?',
|
||||
'maint_image_cleanup_success' => ':count: potentielt ubrugte billeder fundet og slettet!',
|
||||
@@ -85,41 +85,41 @@ return [
|
||||
'maint_send_test_email_mail_subject' => 'Test E-Mail',
|
||||
'maint_send_test_email_mail_greeting' => 'E-Mail levering ser ud til at virke!',
|
||||
'maint_send_test_email_mail_text' => 'Tillykke! Da du har modtaget denne mailnotifikation, ser det ud som om, at dine mailindstillinger er opsat korrekt.',
|
||||
'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' => 'Slettede hylder, bøger, kapitler og sider overføres til papirkurven, så de kan gendannes eller slettes permanent. Ældre elementer i papirkurven fjernes automatisk efter et stykke tid afhængigt af systemets konfiguration.',
|
||||
'maint_recycle_bin_open' => 'Åbn papirkurven',
|
||||
|
||||
// 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' => 'Papirkurv',
|
||||
'recycle_bin_desc' => 'Her kan du gendanne elementer, der er blevet slettet eller vælge at permanent fjerne dem fra systemet. Denne liste er ufiltreret, i modsætning til lignende aktivitetslister i systemet, hvor tilladelsesfiltre anvendes.',
|
||||
'recycle_bin_deleted_item' => 'Slettet element',
|
||||
'recycle_bin_deleted_by' => 'Slettet af',
|
||||
'recycle_bin_deleted_at' => 'Sletningstidspunkt',
|
||||
'recycle_bin_permanently_delete' => 'Slet permanent',
|
||||
'recycle_bin_restore' => 'Gendan',
|
||||
'recycle_bin_contents_empty' => 'Papirkurven er tom',
|
||||
'recycle_bin_empty' => 'Tøm papirkurv',
|
||||
'recycle_bin_empty_confirm' => 'Dette vil permanent slette alle elementer i papirkurven, inkluderet hvert elements indhold. Er du sikker på, at du vil tømme papirkurven?',
|
||||
'recycle_bin_destroy_confirm' => 'Denne handling sletter dette element permanent, sammen med elementerne anført nedenfor, fra systemet. Du vil ikke være i stand til at gendanne dette indhold. Er du sikker på, at du vil slette dette element permanent?',
|
||||
'recycle_bin_destroy_list' => 'Elementer der skal slettes',
|
||||
'recycle_bin_restore_list' => 'Elementer der skal gendannes',
|
||||
'recycle_bin_restore_confirm' => 'Denne handling vil gendanne det slettede element, herunder alle underelementer, til deres oprindelige placering. Hvis den oprindelige placering siden er blevet slettet, og nu er i papirkurven, vil det overordnede element også skulle gendannes.',
|
||||
'recycle_bin_restore_deleted_parent' => 'Det overordnede element til dette element er også blevet slettet. Disse vil forblive slettet indtil det overordnede også er gendannet.',
|
||||
'recycle_bin_destroy_notification' => 'Slettede :count elementer fra papirkurven.',
|
||||
'recycle_bin_restore_notification' => 'Gendannede :count elementer fra papirkurven.',
|
||||
|
||||
// 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' => 'Revisionslog',
|
||||
'audit_desc' => 'Denne revisionslog viser en liste over aktiviteter sporet i systemet. Denne liste er ufiltreret i modsætning til lignende aktivitetslister i systemet, hvor tilladelsesfiltre anvendes.',
|
||||
'audit_event_filter' => 'Event filter',
|
||||
'audit_event_filter_no_filter' => 'Intet filter',
|
||||
'audit_deleted_item' => 'Element slettet',
|
||||
'audit_deleted_item_name' => 'Navn: :name',
|
||||
'audit_table_user' => 'Bruger',
|
||||
'audit_table_event' => 'Hændelse',
|
||||
'audit_table_related' => 'Relateret element eller detalje',
|
||||
'audit_table_date' => 'Aktivitetsdato',
|
||||
'audit_date_from' => 'Datointerval fra',
|
||||
'audit_date_to' => 'Datointerval til',
|
||||
|
||||
// Role Settings
|
||||
'roles' => 'Roller',
|
||||
@@ -146,7 +146,7 @@ return [
|
||||
'role_access_api' => 'Tilgå system-API',
|
||||
'role_manage_settings' => 'Administrer app-indstillinger',
|
||||
'role_asset' => 'Tilladelser for medier og "assets"',
|
||||
'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' => 'Vær opmærksom på, at adgang til alle af de ovennævnte tre tilladelser, kan give en bruger mulighed for at ændre deres egne brugerrettigheder eller brugerrettigheder for andre i systemet. Tildel kun roller med disse tilladelser til betroede brugere.',
|
||||
'role_asset_desc' => 'Disse tilladelser kontrollerer standardadgang til medier og "assets" i systemet. Tilladelser til bøger, kapitler og sider tilsidesætter disse tilladelser.',
|
||||
'role_asset_admins' => 'Administratorer får automatisk adgang til alt indhold, men disse indstillinger kan vise eller skjule UI-indstillinger.',
|
||||
'role_all' => 'Alle',
|
||||
@@ -162,7 +162,7 @@ return [
|
||||
'user_profile' => 'Brugerprofil',
|
||||
'users_add_new' => 'Tilføj ny bruger',
|
||||
'users_search' => 'Søg efter brugere',
|
||||
'users_latest_activity' => 'Latest Activity',
|
||||
'users_latest_activity' => 'Seneste aktivitet',
|
||||
'users_details' => 'Brugeroplysninger',
|
||||
'users_details_desc' => 'Angiv et visningsnavn og en E-Mail-adresse for denne bruger. E-Mail-adressen bruges til at logge ind på applikationen.',
|
||||
'users_details_desc_no_email' => 'Sætter et visningsnavn for denne bruger, så andre kan genkende dem.',
|
||||
@@ -180,10 +180,10 @@ return [
|
||||
'users_delete_named' => 'Slet bruger :userName',
|
||||
'users_delete_warning' => 'Dette vil helt slette denne bruger med navnet \':userName\' fra systemet.',
|
||||
'users_delete_confirm' => 'Er du sikker på, at du vil slette denne bruger?',
|
||||
'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' => 'Overfør ejerskab',
|
||||
'users_migrate_ownership_desc' => 'Vælg en bruger her, hvis du vil have en anden bruger til at blive ejer af alle elementer, der i øjeblikket ejes af denne bruger.',
|
||||
'users_none_selected' => 'Ingen bruger valgt',
|
||||
'users_delete_success' => 'Brugeren blev fjernet',
|
||||
'users_edit' => 'Rediger bruger',
|
||||
'users_edit_profile' => 'Rediger profil',
|
||||
'users_edit_success' => 'Bruger suscesfuldt opdateret',
|
||||
@@ -232,7 +232,7 @@ return [
|
||||
'ar' => 'العربية',
|
||||
'bg' => 'Bǎlgarski',
|
||||
'bs' => 'Bosanski',
|
||||
'ca' => 'Català',
|
||||
'ca' => 'Catalansk',
|
||||
'cs' => 'Česky',
|
||||
'da' => 'Dansk',
|
||||
'de' => 'Deutsch (Sie)',
|
||||
|
||||
@@ -89,7 +89,7 @@ return [
|
||||
'required_without' => ':attribute skal udfyldes når :values ikke er udfyldt.',
|
||||
'required_without_all' => ':attribute skal udfyldes når ingen af :values er udfyldt.',
|
||||
'same' => ':attribute og :other skal være ens.',
|
||||
'safe_url' => 'The provided link may not be safe.',
|
||||
'safe_url' => 'Det angivne link kan være usikkert.',
|
||||
'size' => [
|
||||
'numeric' => ':attribute skal være :size.',
|
||||
'file' => ':attribute skal være :size kilobytes.',
|
||||
|
||||
@@ -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,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Brotkrumen',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Header-Menü erweitern',
|
||||
'profile_menu' => 'Profilmenü',
|
||||
'view_profile' => 'Profil ansehen',
|
||||
'edit_profile' => 'Profil bearbeiten',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Sekundäre Informationen anzeigen',
|
||||
'tab_content' => 'Inhalt',
|
||||
'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:',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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.',
|
||||
|
||||
@@ -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)',
|
||||
|
||||
@@ -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,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Brotkrumen',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Header-Menü erweitern',
|
||||
'profile_menu' => 'Profilmenü',
|
||||
'view_profile' => 'Profil ansehen',
|
||||
'edit_profile' => 'Profil bearbeiten',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Sekundäre Informationen anzeigen',
|
||||
'tab_content' => 'Inhalt',
|
||||
'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:',
|
||||
@@ -81,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',
|
||||
];
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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.',
|
||||
|
||||
@@ -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)',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'View Profile',
|
||||
'edit_profile' => 'Edit Profile',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Content',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'If you’re having trouble clicking the ":actionText" button, copy and paste the URL below into your web browser:',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Ordenar Ascendentemente',
|
||||
'sort_descending' => 'Ordenar Descendentemente',
|
||||
'sort_name' => 'Nombre',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Predeterminada',
|
||||
'sort_created_at' => 'Fecha de Creación',
|
||||
'sort_updated_at' => 'Fecha de Modificación',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Rastro de migas de pan',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expandir el Menú de la Cabecera',
|
||||
'profile_menu' => 'Menú de Perfil',
|
||||
'view_profile' => 'Ver Perfil',
|
||||
'edit_profile' => 'Editar Perfil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Información',
|
||||
'tab_info_label' => 'Pestaña: Mostrar Información Secundaria',
|
||||
'tab_content' => 'Contenido',
|
||||
'tab_content_label' => 'Pestaña: Mostrar Contenido Primario',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Si está teniendo problemas clicando en el botón ":actionText", copie y pegue la siguiente URL en su navegador web:',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Orden Ascendente',
|
||||
'sort_descending' => 'Orden Descendente',
|
||||
'sort_name' => 'Nombre',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Por defecto',
|
||||
'sort_created_at' => 'Fecha de creación',
|
||||
'sort_updated_at' => 'Fecha de actualización',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Miga de Pan',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expandir el Menú de Cabecera',
|
||||
'profile_menu' => 'Menu del Perfil',
|
||||
'view_profile' => 'Ver Perfil',
|
||||
'edit_profile' => 'Editar Perfil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Información',
|
||||
'tab_info_label' => 'Pestaña: Mostrar Información Secundaria',
|
||||
'tab_content' => 'Contenido',
|
||||
'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:',
|
||||
|
||||
@@ -60,7 +60,7 @@ return [
|
||||
'search_permissions_set' => 'Permisos establecidos',
|
||||
'search_created_by_me' => 'Creado por mí',
|
||||
'search_updated_by_me' => 'Actualizado por mí',
|
||||
'search_owned_by_me' => 'Owned by me',
|
||||
'search_owned_by_me' => 'De mi propiedad',
|
||||
'search_date_options' => 'Opciones de fecha',
|
||||
'search_updated_before' => 'Actualizado antes de',
|
||||
'search_updated_after' => 'Actualizado después de',
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -73,7 +73,7 @@ return [
|
||||
'maint' => 'Mantenimiento',
|
||||
'maint_image_cleanup' => 'Limpiar imágenes',
|
||||
'maint_image_cleanup_desc' => "Analizar contenido de páginas y revisiones para detectar cuáles imágenes y dibujos están en uso y cuáles son redundantes. Asegúrese de crear un respaldo completo de imágenes y base de datos antes de ejecutar esta tarea.",
|
||||
'maint_delete_images_only_in_revisions' => 'Elimina también imágenes que sólo existen en antiguas revisiones de páginas',
|
||||
'maint_delete_images_only_in_revisions' => 'También elimina imágenes que sólo existen en antiguas revisiones de páginas',
|
||||
'maint_image_cleanup_run' => 'Ejecutar limpieza',
|
||||
'maint_image_cleanup_warning' => 'Se encontraron :count imágenes pontencialmente sin uso. Está seguro de que quiere eliminarlas?',
|
||||
'maint_image_cleanup_success' => 'Se encontraron y se eliminaron :count imágenes pontencialmente sin uso!',
|
||||
@@ -99,13 +99,13 @@ return [
|
||||
'recycle_bin_contents_empty' => 'La papelera de reciclaje está vacía',
|
||||
'recycle_bin_empty' => 'Vaciar Papelera de reciclaje',
|
||||
'recycle_bin_empty_confirm' => 'Esto destruirá permanentemente todos los elementos de la papelera de reciclaje, incluyendo el contenido existente en cada elemento. ¿Está seguro de que desea vaciar la papelera de reciclaje?',
|
||||
'recycle_bin_destroy_confirm' => 'Esta acción eliminará permanentemente este elemento del sistema, junto con los elementos secundarios listados a continuación, y no podrá restaurar este contenido de nuevo. ¿Está seguro de que desea eliminar permanentemente este elemento?',
|
||||
'recycle_bin_destroy_list' => 'Elementos a eliminar',
|
||||
'recycle_bin_destroy_confirm' => 'Esta acción eliminará permanentemente este elemento del sistema, junto con los elementos secundarios listados a continuación, y no podrá restaurar este contenido. ¿Está seguro de que desea eliminar permanentemente este elemento?',
|
||||
'recycle_bin_destroy_list' => 'Elementos a destruir',
|
||||
'recycle_bin_restore_list' => 'Elementos a restaurar',
|
||||
'recycle_bin_restore_confirm' => 'Esta acción restaurará el elemento eliminado, incluyendo cualquier elemento secundario, a su ubicación original. Si la ubicación original ha sido eliminada, y ahora está en la papelera de reciclaje, el elemento padre también tendrá que ser restaurado.',
|
||||
'recycle_bin_restore_deleted_parent' => 'El padre de este elemento también ha sido eliminado. Estos permanecerán eliminados hasta que el padre también sea restaurado.',
|
||||
'recycle_bin_destroy_notification' => 'Eliminados :count artículos de la papelera de reciclaje.',
|
||||
'recycle_bin_restore_notification' => 'Restaurados :count artículos desde la papelera de reciclaje.',
|
||||
'recycle_bin_destroy_notification' => 'Eliminados :count elementos de la papelera de reciclaje.',
|
||||
'recycle_bin_restore_notification' => 'Restaurados :count elementos desde la papelera de reciclaje.',
|
||||
|
||||
// Audit Log
|
||||
'audit' => 'Registro de Auditoría',
|
||||
@@ -183,8 +183,8 @@ return [
|
||||
'users_delete_confirm' => '¿Está seguro que desea borrar este usuario?',
|
||||
'users_migrate_ownership' => 'Cambiar Propietario',
|
||||
'users_migrate_ownership_desc' => 'Seleccione un usuario aquí si desea que otro usuario se convierta en el dueño de todos los elementos que actualmente son propiedad de este usuario.',
|
||||
'users_none_selected' => 'Usuario no seleccionado',
|
||||
'users_delete_success' => 'El usuario se ha eliminado correctamente',
|
||||
'users_none_selected' => 'No hay usuario seleccionado',
|
||||
'users_delete_success' => 'El usuario fue eliminado correctamente',
|
||||
'users_edit' => 'Editar Usuario',
|
||||
'users_edit_profile' => 'Editar perfil',
|
||||
'users_edit_success' => 'Usuario actualizado',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'View Profile',
|
||||
'edit_profile' => 'Edit Profile',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Content',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'If you’re having trouble clicking the ":actionText" button, copy and paste the URL below into your web browser:',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Tri ascendant',
|
||||
'sort_descending' => 'Tri descendant',
|
||||
'sort_name' => 'Nom',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Défaut',
|
||||
'sort_created_at' => 'Date de création',
|
||||
'sort_updated_at' => 'Date de mise à jour',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Fil d\'Ariane',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Développer le menu',
|
||||
'profile_menu' => 'Menu du profil',
|
||||
'view_profile' => 'Voir le profil',
|
||||
'edit_profile' => 'Modifier le profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informations',
|
||||
'tab_info_label' => 'Onglet : Afficher les informations secondaires',
|
||||
'tab_content' => 'Contenu',
|
||||
'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 :',
|
||||
|
||||
@@ -60,7 +60,7 @@ return [
|
||||
'search_permissions_set' => 'Ensemble d\'autorisations',
|
||||
'search_created_by_me' => 'Créé par moi',
|
||||
'search_updated_by_me' => 'Mis à jour par moi',
|
||||
'search_owned_by_me' => 'Owned by me',
|
||||
'search_owned_by_me' => 'Créés par moi',
|
||||
'search_date_options' => 'Recherche par date',
|
||||
'search_updated_before' => 'Mis à jour avant',
|
||||
'search_updated_after' => 'Mis à jour après',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'הצג פרופיל',
|
||||
'edit_profile' => 'ערוך פרופיל',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'מידע',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'תוכן',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'אם לא ניתן ללחות על כפתור ״:actionText״, יש להעתיק ולהדביק את הכתובת למטה אל דפדפן האינטרנט שלך:',
|
||||
|
||||
@@ -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 כרגע אינו זמין',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Morzsa',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profil menü',
|
||||
'view_profile' => 'Profil megtekintése',
|
||||
'edit_profile' => 'Profil szerkesztése',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Információ',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Tartalom',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Probléma esetén a lenti ":actionText" gombra kell kattintani, majd ki kell másolni a lenti webcímet és be kell illeszteni egy böngészőbe:',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Perluas Menu Tajuk',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'Tampilkan profil',
|
||||
'edit_profile' => 'Sunting Profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informasi',
|
||||
'tab_info_label' => 'Tab Menampilkan Informasi Sekunder',
|
||||
'tab_content' => 'Konten',
|
||||
'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:',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
];
|
||||
|
||||
@@ -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,7 +65,8 @@ return [
|
||||
'breadcrumb' => 'Navigazione',
|
||||
|
||||
// Header
|
||||
'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',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Mostra Informazioni Secondarie',
|
||||
'tab_content' => 'Contenuto',
|
||||
'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:',
|
||||
@@ -81,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',
|
||||
];
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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:',
|
||||
|
||||
];
|
||||
|
||||
@@ -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!',
|
||||
|
||||
];
|
||||
|
||||
@@ -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)',
|
||||
|
||||
@@ -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.',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'プロフィール表示',
|
||||
'edit_profile' => 'プロフィール編集',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Content',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => '":actionText" をクリックできない場合、以下のURLをコピーしブラウザで開いてください:',
|
||||
|
||||
@@ -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は現在停止しています',
|
||||
|
||||
@@ -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' => 'テストメールを送信',
|
||||
|
||||
@@ -45,5 +45,5 @@ return [
|
||||
|
||||
// Other
|
||||
'commented_on' => '댓글 쓰기',
|
||||
'permissions_update' => 'updated permissions',
|
||||
'permissions_update' => '업데이트된 권한',
|
||||
];
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => '탐색 경로',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => '프로필',
|
||||
'view_profile' => '프로필 보기',
|
||||
'edit_profile' => '프로필 바꾸기',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => '정보',
|
||||
'tab_info_label' => '탭: 보조 정보 표시',
|
||||
'tab_content' => '내용',
|
||||
'tab_content_label' => '탭: 주요 내용 표시',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => ':actionText를 클릭할 수 없을 때는 웹 브라우저에서 다음 링크로 접속할 수 있습니다.',
|
||||
@@ -81,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' => '이용약관',
|
||||
];
|
||||
|
||||
@@ -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.',
|
||||
|
||||
@@ -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에 문제가 있는 것 같습니다',
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user