Compare commits

...

28 Commits

Author SHA1 Message Date
Dan Brown
48f235ea5a Updated version and assets for release v24.05.2 2024-06-10 11:44:06 +01:00
Dan Brown
047771b9f4 Merge branch 'development' into release 2024-06-10 11:43:05 +01:00
Dan Brown
c096b20d9c Updated translator & dependency attribution before release v24.05.2 2024-06-10 11:42:37 +01:00
Dan Brown
11a7ccc37e SAML: Set static type to pass static checks
Not totally clear if underlying code can actually return null, but
playing it safe to remain as-is for now for patch release.
2024-06-10 10:31:35 +01:00
Dan Brown
d9b9e6c0b1 Updated translations with latest Crowdin changes (#5022) 2024-06-10 10:16:34 +01:00
Dan Brown
f18d42f08e Merge pull request #5036 from bradenterpstra01/development
Fixed incorrect code shortcut reference
2024-06-09 23:23:28 +01:00
Dan Brown
4986f008b9 Merge pull request #5052 from michaelortnerit/development
Update docker-compose.yml
2024-06-09 23:20:01 +01:00
Dan Brown
a8ce199e0d Pages: Fixed unused changelog on first page publish
Included test to cover.
For #5056
2024-06-09 17:18:23 +01:00
Dan Brown
c77e8730d6 Deps: Updated php packages via composer 2024-06-09 17:03:29 +01:00
Dan Brown
3406846c82 Images: Updated GIF handling to use native methods
Changes GIF image thumbnail handling to direcly load via gd instead of
going through interventions own handling (which supports frames) since
we don't need animation for our thumbnails, and since performance issues
could arise with GIFs that have large frame counts.

For #5029
2024-06-09 17:00:58 +01:00
Dan Brown
bddc6ae66b Roles: Added max validation for role external auth id field
For #5037
2024-06-08 20:33:34 +01:00
Michael Ortner
bd6e3c022f Update docker-compose.yml
Remove the version: because it is obsolete. See: https://docs.docker.com/compose/compose-file/04-version-and-name/#version-top-level-element-optional
2024-06-04 15:07:09 +02:00
bradenterpstra01
8759fff116 Update wysiwyg.blade.php
Remove the Shift for the numeric shortcut for incline code.

Ctrl+8 instead of Ctrl+Shift+8

I assume Mac is the same but I do not have a Mac to test with.
2024-05-29 18:01:48 -04:00
Dan Brown
6019d2ee14 MFA: Tweaked backup code wording
It was not clear before as it could be taken that the system would
securely store the codes.

Closes #5017
2024-05-23 11:30:53 +01:00
Dan Brown
b5375114d3 Updated version and assets for release v24.05.1 2024-05-21 11:07:36 +01:00
Dan Brown
fc13e56cea Merge branch 'development' into release 2024-05-21 11:07:10 +01:00
Dan Brown
f937bf3abb Updated translator & dependency attribution before release v24.05.1 2024-05-21 11:06:08 +01:00
Dan Brown
586e8963a8 Updated translations with latest Crowdin changes (#4994) 2024-05-21 11:04:27 +01:00
Dan Brown
bdfa76ed9a Deps: Updated php/composer packages 2024-05-20 17:28:53 +01:00
Dan Brown
d133f904d3 Auth: Changed email confirmations to use login attempt user
Negates the need for a public confirmation resend form
since we can instead just send direct to the last session login attempter.
2024-05-20 17:23:15 +01:00
Dan Brown
69af9e0dbd Routes: Added throttling to a range of auth-related endpoints
Some already throttled in some means, but this adds a simple ip-based
non-request-specific layer to many endpoints.
Related to #4993
2024-05-20 14:00:58 +01:00
Dan Brown
72c5141dec File Uploads: Added basic validation response formatting
Tested via app-level validation file limit, and then also with nginx
file post limit.
For #4996
2024-05-18 21:18:15 +01:00
Dan Brown
5651d2c43d Config: Reverted change to cache directory
Change made during Laravel 10 updates to align (Laravel made this change
much earlier in 5.x series) but it caused issues due to folder not
pre-existing and due to potentiall permission issues.
(CLI could create this during update, with non-compatible permissions
for webserver).

For #4999
2024-05-18 20:40:26 +01:00
Dan Brown
fc236f930b Dark Mode: Fixed setting labels missing dark mode handling
Fixes #5018
2024-05-18 20:37:49 +01:00
Dan Brown
570af500f4 WYSIWYG: Added justify cell range cleanup
To help override & gain control of setting text alignment in tables.

- Adds support of clearing "align" attributes in certain operations.
- Updates cell range action handling to dedupe execcommand handling.
- Adds clearing of additional alignment classes on direction control.

Closes #5011
2024-05-16 14:59:30 +01:00
Dan Brown
38913288d8 Devdocs: Fixed visual theme system lang folder reference
Made some other minor updates while there.
Fixes #4998
2024-05-16 14:15:26 +01:00
Dan Brown
c14d7d9509 Merge pull request #5008 from KiDxS/fix-notification-preferences-url-in-email
Fixed notification preferences URL in email
2024-05-16 14:11:15 +01:00
Angelo Geant Gaviola
79f5be4170 Fixed notification preferences URL in email 2024-05-14 17:04:23 +08:00
170 changed files with 938 additions and 577 deletions

View File

@@ -347,7 +347,7 @@ Taygun Yıldırım (yildirimtaygun) :: Turkish
robing29 :: German
Bruno Eduardo de Jesus Barroso (brunoejb) :: Portuguese, Brazilian
Igor V Belousov (biv) :: Russian
David Bauer (davbauer) :: German
David Bauer (davbauer) :: German; German Informal
Guttorm Hveem (guttormhveem) :: Norwegian Nynorsk; Norwegian Bokmal
Minh Giang Truong (minhgiang1204) :: Vietnamese
Ioannis Ioannides (i.ioannides) :: Greek
@@ -389,7 +389,7 @@ Marc Hagen (MarcHagen) :: Dutch
Kasper Alsøe (zeonos) :: Danish
sultani :: Persian
renge :: Korean
Tim (thegatesdev) :: Dutch; German Informal; Romanian; French; Catalan; Czech; Danish; German; Finnish; Hungarian; Italian; Japanese; Korean; Polish; Russian; Ukrainian; Chinese Simplified; Chinese Traditional; Portuguese, Brazilian; Persian; Spanish, Argentina; Croatian; Norwegian Nynorsk; Estonian; Uzbek; Norwegian Bokmal
Tim (thegatesdev) :: Dutch; German Informal; French; Romanian; Catalan; Czech; Danish; German; Finnish; Hungarian; Italian; Japanese; Korean; Polish; Russian; Ukrainian; Chinese Simplified; Chinese Traditional; Portuguese, Brazilian; Persian; Spanish, Argentina; Croatian; Norwegian Nynorsk; Estonian; Uzbek; Norwegian Bokmal
Irdi (irdiOL) :: Albanian
KateBarber :: Welsh
Twister (theuncles75) :: Hebrew
@@ -422,3 +422,10 @@ crow_ :: Latvian
JocelynDelalande :: French
Jan (JW-CH) :: German Informal
Timo B (lommes) :: German Informal
Erik Lundstedt (Erik.Lundstedt) :: Swedish
yngams (younessmouhid) :: Arabic
Ohadp :: Hebrew
cbridi :: Portuguese, Brazilian
nanangsb :: Indonesian
Michal Melich (michalmelich) :: Czech
David (david-prv) :: German

View File

@@ -32,13 +32,17 @@ class ConfirmEmailController extends Controller
/**
* Shows a notice that a user's email address has not been confirmed,
* Also has the option to re-send the confirmation email.
* along with the option to re-send the confirmation email.
*/
public function showAwaiting()
{
$user = $this->loginService->getLastLoginAttemptUser();
if ($user === null) {
$this->showErrorNotification(trans('errors.login_user_not_found'));
return redirect('/login');
}
return view('auth.user-unconfirmed', ['user' => $user]);
return view('auth.register-confirm-awaiting');
}
/**
@@ -90,19 +94,24 @@ class ConfirmEmailController extends Controller
/**
* Resend the confirmation email.
*/
public function resend(Request $request)
public function resend()
{
$this->validate($request, [
'email' => ['required', 'email', 'exists:users,email'],
]);
$user = $this->userRepo->getByEmail($request->get('email'));
$user = $this->loginService->getLastLoginAttemptUser();
if ($user === null) {
$this->showErrorNotification(trans('errors.login_user_not_found'));
return redirect('/login');
}
try {
$this->emailConfirmationService->sendConfirmation($user);
} catch (ConfirmationEmailException $e) {
$this->showErrorNotification($e->getMessage());
return redirect('/login');
} catch (Exception $e) {
$this->showErrorNotification(trans('auth.email_confirm_send_error'));
return redirect('/register/confirm');
return redirect('/register/awaiting');
}
$this->showSuccessNotification(trans('auth.email_confirm_resent'));

View File

@@ -6,6 +6,7 @@ use BookStack\Activity\ActivityType;
use BookStack\Http\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Password;
use Illuminate\Support\Sleep;
class ForgotPasswordController extends Controller
{
@@ -32,6 +33,10 @@ class ForgotPasswordController extends Controller
'email' => ['required', 'email'],
]);
// Add random pause to the response to help avoid time-base sniffing
// of valid resets via slower email send handling.
Sleep::for(random_int(1000, 3000))->milliseconds();
// We will send the password reset link to this user. Once we have attempted
// to send the link, we will examine the response then see the message we
// need to show to the user. Finally, we'll send out a proper response.

View File

@@ -17,7 +17,7 @@ trait HandlesPartialLogins
$user = auth()->user() ?? $loginService->getLastLoginAttemptUser();
if (!$user) {
throw new NotFoundException('A user for this action could not be found');
throw new NotFoundException(trans('errors.login_user_not_found'));
}
return $user;

View File

@@ -15,14 +15,11 @@ use Illuminate\Validation\Rules\Password as PasswordRule;
class ResetPasswordController extends Controller
{
protected LoginService $loginService;
public function __construct(LoginService $loginService)
{
public function __construct(
protected LoginService $loginService
) {
$this->middleware('guest');
$this->middleware('guard:standard');
$this->loginService = $loginService;
}
/**

View File

@@ -17,7 +17,7 @@ class EmailConfirmationService extends UserTokenService
*
* @throws ConfirmationEmailException
*/
public function sendConfirmation(User $user)
public function sendConfirmation(User $user): void
{
if ($user->email_confirmed) {
throw new ConfirmationEmailException(trans('errors.email_already_confirmed'), '/login');

View File

@@ -133,6 +133,7 @@ class Saml2Service
// value so that the exact encoding format is matched when checking the signature.
// This is primarily due to ADFS encoding query params with lowercase percent encoding while
// PHP (And most other sensible providers) standardise on uppercase.
/** @var ?string $samlRedirect */
$samlRedirect = $toolkit->processSLO(true, $requestId, true, null, true);
$errors = $toolkit->getErrors();

View File

@@ -43,7 +43,7 @@ abstract class BaseActivityNotification extends MailNotification
protected function buildReasonFooterLine(LocaleDefinition $locale): LinkedMailMessageLine
{
return new LinkedMailMessageLine(
url('/preferences/notifications'),
url('/my-account/notifications'),
$locale->trans('notifications.footer_reason'),
$locale->trans('notifications.footer_reason_link'),
);

View File

@@ -81,5 +81,9 @@ class RouteServiceProvider extends ServiceProvider
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
RateLimiter::for('public', function (Request $request) {
return Limit::perMinute(10)->by($request->ip());
});
}
}

View File

@@ -53,8 +53,8 @@ return [
'file' => [
'driver' => 'file',
'path' => storage_path('framework/cache/data'),
'lock_path' => storage_path('framework/cache/data'),
'path' => storage_path('framework/cache'),
'lock_path' => storage_path('framework/cache'),
],
'memcached' => [

View File

@@ -77,7 +77,8 @@ class PageRepo
$this->updateTemplateStatusAndContentFromInput($draft, $input);
$this->baseRepo->update($draft, $input);
$this->revisionRepo->storeNewForPage($draft, trans('entities.pages_initial_revision'));
$summary = trim($input['summary'] ?? '') ?: trans('entities.pages_initial_revision');
$this->revisionRepo->storeNewForPage($draft, $summary);
$draft->refresh();
Activity::add(ActivityType::PAGE_CREATE, $draft);

View File

@@ -9,16 +9,10 @@ use Illuminate\Http\Request;
class StoppedAuthenticationException extends \Exception implements Responsable
{
protected $user;
protected $loginService;
/**
* StoppedAuthenticationException constructor.
*/
public function __construct(User $user, LoginService $loginService)
{
$this->user = $user;
$this->loginService = $loginService;
public function __construct(
protected User $user,
protected LoginService $loginService
) {
parent::__construct();
}

View File

@@ -7,11 +7,13 @@ use Exception;
use GuzzleHttp\Psr7\Utils;
use Illuminate\Support\Facades\Cache;
use Intervention\Image\Decoders\BinaryImageDecoder;
use Intervention\Image\Drivers\Gd\Decoders\NativeObjectDecoder;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\AutoEncoder;
use Intervention\Image\Encoders\PngEncoder;
use Intervention\Image\Interfaces\ImageInterface as InterventionImage;
use Intervention\Image\ImageManager;
use Intervention\Image\Origin;
class ImageResizer
{
@@ -99,7 +101,7 @@ class ImageResizer
}
// If not in cache and thumbnail does not exist, generate thumb and cache path
$thumbData = $this->resizeImageData($imageData, $width, $height, $keepRatio);
$thumbData = $this->resizeImageData($imageData, $width, $height, $keepRatio, $this->getExtension($image));
$disk->put($thumbFilePath, $thumbData, true);
Cache::put($thumbCacheKey, $thumbFilePath, static::THUMBNAIL_CACHE_TIME);
@@ -120,7 +122,7 @@ class ImageResizer
?string $format = null,
): string {
try {
$thumb = $this->interventionFromImageData($imageData);
$thumb = $this->interventionFromImageData($imageData, $format);
} catch (Exception $e) {
throw new ImageUploadException(trans('errors.cannot_create_thumbs'));
}
@@ -154,11 +156,23 @@ class ImageResizer
* Performs some manual library usage to ensure image is specifically loaded
* from given binary data instead of data being misinterpreted.
*/
protected function interventionFromImageData(string $imageData): InterventionImage
protected function interventionFromImageData(string $imageData, ?string $fileType): InterventionImage
{
$manager = new ImageManager(new Driver());
return $manager->read($imageData, BinaryImageDecoder::class);
// Ensure gif images are decoded natively instead of deferring to intervention GIF
// handling since we don't need the added animation support.
$isGif = $fileType === 'gif';
$decoder = $isGif ? NativeObjectDecoder::class : BinaryImageDecoder::class;
$input = $isGif ? @imagecreatefromstring($imageData) : $imageData;
$image = $manager->read($input, $decoder);
if ($isGif) {
$image->setOrigin(new Origin('image/gif'));
}
return $image;
}
/**
@@ -209,7 +223,15 @@ class ImageResizer
*/
protected function isGif(Image $image): bool
{
return strtolower(pathinfo($image->path, PATHINFO_EXTENSION)) === 'gif';
return $this->getExtension($image) === 'gif';
}
/**
* Get the extension for the given image, normalised to lower-case.
*/
protected function getExtension(Image $image): string
{
return strtolower(pathinfo($image->path, PATHINFO_EXTENSION));
}
/**

View File

@@ -21,7 +21,7 @@ class RoleApiController extends ApiController
'display_name' => ['required', 'string', 'min:3', 'max:180'],
'description' => ['string', 'max:180'],
'mfa_enforced' => ['boolean'],
'external_auth_id' => ['string'],
'external_auth_id' => ['string', 'max:180'],
'permissions' => ['array'],
'permissions.*' => ['string'],
],
@@ -29,7 +29,7 @@ class RoleApiController extends ApiController
'display_name' => ['string', 'min:3', 'max:180'],
'description' => ['string', 'max:180'],
'mfa_enforced' => ['boolean'],
'external_auth_id' => ['string'],
'external_auth_id' => ['string', 'max:180'],
'permissions' => ['array'],
'permissions.*' => ['string'],
]

View File

@@ -75,7 +75,7 @@ class RoleController extends Controller
$data = $this->validate($request, [
'display_name' => ['required', 'min:3', 'max:180'],
'description' => ['max:180'],
'external_auth_id' => ['string'],
'external_auth_id' => ['string', 'max:180'],
'permissions' => ['array'],
'mfa_enforced' => ['string'],
]);
@@ -109,7 +109,7 @@ class RoleController extends Controller
$data = $this->validate($request, [
'display_name' => ['required', 'min:3', 'max:180'],
'description' => ['max:180'],
'external_auth_id' => ['string'],
'external_auth_id' => ['string', 'max:180'],
'permissions' => ['array'],
'mfa_enforced' => ['string'],
]);

461
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -6,14 +6,14 @@ This theme system itself is maintained and supported but usages of this system,
## Getting Started
*[Video Guide](https://www.youtube.com/watch?v=gLy_2GBse48)*
*[Video Guide](https://foss.video/w/ibNY6bGmKFV1tva3Jz4KfA)*
This makes use of the theme system. Create a folder for your theme within your BookStack `themes` directory. As an example we'll use `my_theme`, so we'd create a `themes/my_theme` folder.
You'll need to tell BookStack to use your theme via the `APP_THEME` option in your `.env` file. For example: `APP_THEME=my_theme`.
## Customizing View Files
Content placed in your `themes/<theme_name>/` folder will override the original view files found in the `resources/views` folder. These files are typically [Laravel Blade](https://laravel.com/docs/8.x/blade) files.
Content placed in your `themes/<theme_name>/` folder will override the original view files found in the `resources/views` folder. These files are typically [Laravel Blade](https://laravel.com/docs/10.x/blade) files.
As an example, I could override the `resources/views/books/parts/list-item.blade.php` file with my own template at the path `themes/<theme_name>/books/parts/list-item.blade.php`.
## Customizing Icons
@@ -22,7 +22,7 @@ SVG files placed in a `themes/<theme_name>/icons` folder will override any icons
## Customizing Text Content
Folders with PHP translation files placed in a `themes/<theme_name>/lang` folder will override translations defined within the `resources/lang` folder. Custom translations are merged with the original files so you only need to override the select translations you want to override, you don't need to copy the whole original file. Note that you'll need to include the language folder.
Folders with PHP translation files placed in a `themes/<theme_name>/lang` folder will override translations defined within the `lang` folder. Custom translations are merged with the original files, so you only need to override the select translations you want to override, you don't need to copy the whole original file. Note that you'll need to include the language folder.
As an example, Say I wanted to change 'Search' to 'Find'; Within a `themes/<theme_name>/lang/en/common.php` file I'd set the following:

View File

@@ -357,9 +357,9 @@ Link: https://github.com/nunomaduro/termwind.git
onelogin/php-saml
License: MIT
License File: vendor/onelogin/php-saml/LICENSE
Copyright: Copyright (c) 2010-2016 OneLogin, Inc.
Source: https://github.com/onelogin/php-saml.git
Link: https://developers.onelogin.com/saml/php
Copyright: Copyright (c) 2010-2022 OneLogin, Inc.
Source: https://github.com/SAML-Toolkits/php-saml.git
Link: https://github.com/SAML-Toolkits/php-saml
-----------
paragonie/constant_time_encoding
License: MIT

View File

@@ -1,8 +1,6 @@
# This is a Docker Compose configuration
# intended for development purposes only
version: '3'
volumes:
db: {}

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'تطبيق الجوال',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Codes',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -20,7 +20,7 @@ return [
'description' => 'الوصف',
'role' => 'الدور',
'cover_image' => 'صورة الغلاف',
'cover_image_description' => 'This image should be approximately 440x250px although it will be flexibly scaled & cropped to fit the user interface in different scenarios as required, so actual dimensions for display will differ.',
'cover_image_description' => 'يجب أن يكون حجم هذه الصورة تقريبًا 440x250 بكسل، على الرغم من أنه سيتم تحجيمها وقصها بشكل مرن لتناسب واجهة المستخدم في سيناريوهات مختلفة حسب الحاجة، لذا فإن الأبعاد الفعلية للعرض ستختلف.',
// Actions
'actions' => 'إجراءات',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'لم يتم العثور على السوشيال درايفر "Social driver"',
'social_driver_not_configured' => 'لم يتم تهيئة إعدادات حسابك الاجتماعي بشكل صحيح.',
'invite_token_expired' => 'انتهت صلاحية رابط هذه الدعوة. يمكنك بدلاً من ذلك محاولة إعادة تعيين كلمة مرور حسابك.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'لا يمكن الرفع إلى مسار :filePath. الرجاء التأكد من قابلية الكتابة إلى الخادم.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Мобилно приложение',
'mfa_option_totp_desc' => 'За да използваш многофакторно удостоверяване, ще ти трябва мобилно приложение, което поддържа временни еднократни пароли (TOTP), като например Google Authenticator, Authy или Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Резервни кодове',
'mfa_option_backup_codes_desc' => 'Запази на сигурно място набор от еднократни резервни кодове, с които можеш да устовериш идентичността си.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Потвърди и включи',
'mfa_gen_backup_codes_title' => 'Настройка на резервни кодове',
'mfa_gen_backup_codes_desc' => 'Запази този лист с кодове на сигурно място. Когато достъпваш системата, ще можеш да използваш един от тези кодове като вторичен механизъм за удостоверяване.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Кодът за връзка със социалната мрежа не съществува',
'social_driver_not_configured' => 'Социалните настройки на твоя :socialAccount не са конфигурирани правилно.',
'invite_token_expired' => 'Твоята покана е изтекла. Вместо това може да пробваш да възстановиш паролата на профила си.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Не може да се качи файл в :filePath. Увери се на сървъра, че в пътя може да се записва.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobile App',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Codes',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Driver društvene mreže nije pronađen',
'social_driver_not_configured' => 'Vaše :socialAccount postavke nisu konfigurisane ispravno.',
'invite_token_expired' => 'Pozivni link je istekao. Možete umjesto toga pokušati da resetujete lozinku.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Na putanju fajla :filePath se ne može učitati. Potvrdite da je omogućeno pisanje na server.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Aplicació mòbil',
'mfa_option_totp_desc' => 'Per a fer servir lautenticació de múltiple factor us caldrà una aplicació mòbil que suporti TOTP, com ara Google Authenticador, Authy o Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Codis de seguretat',
'mfa_option_backup_codes_desc' => 'Deseu de manera segura codis de seguretat dun sol ús que podeu introduir per a verificar la vostra identitat.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirma i activa',
'mfa_gen_backup_codes_title' => 'Configuració de codis de seguretat',
'mfa_gen_backup_codes_desc' => 'Deseu la següent llista de codis en un lloc segur. Quan accediu al sistema, podeu fer servir un dels codis com a segon mètode dautenticació.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'No sha trobat el controlador social',
'social_driver_not_configured' => 'La configuració social de :socialAccount no és correcta.',
'invite_token_expired' => 'Aquest enllaç dinvitació ha caducat. Podeu provar de restablir la contrasenya del vostre compte.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'No sha pogut pujar al camí del fitxer :filePath. Assegureu-vos que el servidor hi té permisos descriptura.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobilní aplikace',
'mfa_option_totp_desc' => 'Pro použití vícefaktorového ověření budete potřebovat mobilní aplikaci, která podporuje TOTP jako např. Google Authenticator, Authy nebo Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Záložní kódy',
'mfa_option_backup_codes_desc' => 'Bezpečně si uložte sadu jednorázových záložních kódů, které můžete použít pro ověření vaší identity.',
'mfa_option_backup_codes_desc' => 'Vygeneruje sadu jednorázových záložních kódů, které zadáte při přihlášení k ověření své identity. Ujistěte se, že jsou uloženy na bezpečném místě.',
'mfa_gen_confirm_and_enable' => 'Potvrdit a povolit',
'mfa_gen_backup_codes_title' => 'Nastavení záložních kódů',
'mfa_gen_backup_codes_desc' => 'Uložte níže uvedený seznam kódů na bezpečné místo. Při přístupu k systému budete moci použít jeden z kódů jako druhou metodu ověření.',

View File

@@ -9,7 +9,7 @@ return [
'permissionJson' => 'Nemáte povolení k provedení požadované akce.',
// Auth
'error_user_exists_different_creds' => 'Uživatel s emailem :email již existuje ale s jinými přihlašovacími údaji.',
'error_user_exists_different_creds' => 'Uživatel s emailem :email již existuje, ale s jinými přihlašovacími údaji.',
'auth_pre_register_theme_prevention' => 'Zadané údaje nedovolují zaregistrovat uživatelský účet',
'email_already_confirmed' => 'Emailová adresa již byla potvrzena. Zkuste se přihlásit.',
'email_confirmation_invalid' => 'Tento potvrzovací odkaz již neplatí nebo už byl použit. Zkuste prosím registraci znovu.',
@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Doplněk pro tohoto správce identity nebyl nalezen.',
'social_driver_not_configured' => 'Nastavení vašeho účtu na :socialAccount není správné. :socialAccount musí mít vaše svolení pro naší aplikaci vás přihlásit.',
'invite_token_expired' => 'Odkaz v pozvánce již bohužel vypršel. Namísto toho ale můžete zkusit resetovat heslo do Vašeho účtu.',
'login_user_not_found' => 'Uživatele pro tuto akci se nepodařilo najít.',
// System
'path_not_writable' => 'Nelze zapisovat na cestu k souboru :filePath. Zajistěte aby se dalo nahrávat na server.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Ap Ffôn Symudol',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Codes',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Gyrrwr cymdeithasol heb ei ganfod',
'social_driver_not_configured' => 'Nid yw eich gosodiadau cymdeithasol :socialAccount wedi\'u ffurfweddu\'n gywir.',
'invite_token_expired' => 'Mae\'r ddolen wahoddiad hon wedi dod i ben. Yn lle hynny, gallwch chi geisio ailosod cyfrinair eich cyfrif.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Nid oedd modd uwchlwytho llwybr ffeil :filePath. Sicrhewch ei fod yn ysgrifenadwy i\'r gweinydd.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobil app',
'mfa_option_totp_desc' => 'For at bruge multi-faktor godkendelse, skal du bruge en mobil app, der understøtter TOTP såsom Google Authenticator, Authy eller Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup koder',
'mfa_option_backup_codes_desc' => 'Gem sikkert et sæt af engangs backup koder, som du kan indtaste for at bekræfte din identitet.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Bekræft og aktivér',
'mfa_gen_backup_codes_title' => 'Backup koder opsætning',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Socialdriver ikke fundet',
'social_driver_not_configured' => 'Dine :socialAccount indstillinger er ikke konfigureret korret.',
'invite_token_expired' => 'Dette invitationslink er udløbet. I stedet kan du prøve at nulstille din kontos kodeord.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Filsti :filePath kunne ikke uploades til. Sørg for at den kan skrives til af webserveren.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Handy-App',
'mfa_option_totp_desc' => 'Um Mehrfach-Faktor-Authentifizierung nutzen zu können, benötigen Sie eine Handy-Anwendung, die TOTP unterstützt, wie Google Authenticator, Authy oder Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup-Codes',
'mfa_option_backup_codes_desc' => 'Speichern Sie sicher eine Reihe von einmaligen Backup-Codes, die Sie eingeben können, um Ihre Identität zu überprüfen.',
'mfa_option_backup_codes_desc' => 'Erzeugt eine Reihe von einmalig nutzbaren Backup-Codes, welche Sie bei der Anmeldung eingeben, um Ihre Identität zu bestätigen. Achten Sie darauf diese an einem sicheren Ort aufzubewahren.',
'mfa_gen_confirm_and_enable' => 'Bestätigen und aktivieren',
'mfa_gen_backup_codes_title' => 'Backup-Codes einrichten',
'mfa_gen_backup_codes_desc' => 'Speichern Sie die folgende Liste von Codes an einem sicheren Ort. Wenn Sie auf das System zugreifen, können Sie einen der Codes als zweiten Authentifizierungsmechanismus verwenden.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Treiber für Social-Media-Konten nicht gefunden',
'social_driver_not_configured' => 'Ihr :socialAccount-Konto ist nicht korrekt konfiguriert.',
'invite_token_expired' => 'Dieser Einladungslink ist abgelaufen. Sie können stattdessen versuchen Ihr Passwort zurückzusetzen.',
'login_user_not_found' => 'Ein Benutzer für diese Aktion konnte nicht gefunden werden.',
// System
'path_not_writable' => 'Die Datei kann nicht in den angegebenen Pfad :filePath hochgeladen werden. Stellen Sie sicher, dass dieser Ordner auf dem Server beschreibbar ist.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobile App',
'mfa_option_totp_desc' => 'Um Mehrfach-Faktor-Authentifizierung nutzen zu können, benötigst du eine mobile Anwendung, die TOTP unterstützt, wie Google Authenticator, Authy oder Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Code',
'mfa_option_backup_codes_desc' => 'Speichere eine Reihe von einmaligen Backup-Codes an einem sicheren Ort. Du kannst damit deine identität bestätigen.',
'mfa_option_backup_codes_desc' => 'Erzeugt eine Reihe von einmalig nutzbaren Backup-Codes, welche Sie bei der Anmeldung eingeben, um Ihre Identität zu bestätigen. Achten Sie darauf diese an einem sicheren Ort aufzubewahren.',
'mfa_gen_confirm_and_enable' => 'Bestätigen und aktivieren',
'mfa_gen_backup_codes_title' => 'Backup-Codes einrichten',
'mfa_gen_backup_codes_desc' => 'Speichere die folgende Liste der Codes an einem sicheren Ort. Wenn du auf das System zugreifst, kannst du einen der Codes als zweiten Authentifizierungsmechanismus verwenden.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Treiber für Social-Media-Konten nicht gefunden',
'social_driver_not_configured' => 'Dein :socialAccount-Konto ist nicht korrekt konfiguriert.',
'invite_token_expired' => 'Dieser Einladungslink ist abgelaufen. Du kannst stattdessen versuchen, dein Passwort zurückzusetzen.',
'login_user_not_found' => 'Ein Benutzer für diese Aktion konnte nicht gefunden werden.',
// System
'path_not_writable' => 'Die Datei kann nicht in den angegebenen Pfad :filePath hochgeladen werden. Stelle sicher, dass dieser Ordner auf dem Server beschreibbar ist.',

View File

@@ -279,7 +279,7 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
// Licensing
'licenses' => 'Lizenzen',
'licenses_desc' => 'Diese Seite beschreibt Lizenzinformationen für BookStack zusätzlich zu den Projekten und Bibliotheken, die in BookStack verwendet werden. Viele aufgelistete Projekte dürfen nur in einem Entwicklungskontext verwendet werden.',
'licenses_desc' => 'Diese Seite beschreibt Lizenzinformationen für BookStack zusätzlich zu den Projekten und Bibliotheken, die in BookStack verwendet werden. Viele aufgelistete Projekte werden nur in einem Entwicklungskontext verwendet.',
'licenses_bookstack' => 'BookStack-Lizenz',
'licenses_php' => 'PHP-Bibliothekslizenzen',
'licenses_js' => 'JavaScript-Bibliothekslizenzen',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Εφαρμογή για κινητό',
'mfa_option_totp_desc' => 'Για να χρησιμοποιήσετε τον έλεγχο ταυτότητας πολλαπλών παραγόντων, θα χρειαστείτε μια εφαρμογή για κινητά που υποστηρίζει TOTP, όπως το Google Authenticator, το Authy ή το Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Εφεδρικοί κωδικοί',
'mfa_option_backup_codes_desc' => 'Αποθηκεύστε με ασφάλεια ένα σύνολο εφεδρικών κωδικών μίας χρήσης τους οποίους μπορείτε να εισαγάγετε για να επαληθεύσετε την ταυτότητά σας.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Επιβεβαίωση και ενεργοποίηση',
'mfa_gen_backup_codes_title' => 'Ρύθμιση εφεδρικών κωδικών',
'mfa_gen_backup_codes_desc' => 'Αποθηκεύστε την παρακάτω λίστα κωδικών σε ασφαλές μέρος. Κατά την πρόσβαση στο σύστημα, θα μπορείτε να χρησιμοποιήσετε έναν από τους κωδικούς ως δεύτερο μηχανισμό ελέγχου ταυτότητας.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Δεν βρέθηκε κοινωνικός οδηγός',
'social_driver_not_configured' => 'Οι κοινωνικές ρυθμίσεις του :socialAccount δεν έχουν ρυθμιστεί σωστά.',
'invite_token_expired' => 'Αυτός ο σύνδεσμος πρόσκλησης έχει λήξει. Αντ\' αυτού μπορείτε να προσπαθήσετε να επαναφέρετε τον κωδικό πρόσβασής σας.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Η διαδρομή αρχείου :filePath δεν μπόρεσε να μεταφορτωθεί. Βεβαιωθείτε ότι είναι εγγράψιμη στο διακομιστή.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobile App',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Codes',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Social driver not found',
'social_driver_not_configured' => 'Your :socialAccount social settings are not configured correctly.',
'invite_token_expired' => 'This invitation link has expired. You can instead try to reset your account password.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'File path :filePath could not be uploaded to. Ensure it is writable to the server.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Aplicación para móviles',
'mfa_option_totp_desc' => 'Para utilizar la autenticación en dos pasos necesitarás una aplicación móvil que soporte TOTP como Google Authenticator, Authy o Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Códigos de Respaldo',
'mfa_option_backup_codes_desc' => 'Almacena de forma segura un conjunto de códigos de respaldo de un solo uso que puedes introducir para verificar tu identidad.',
'mfa_option_backup_codes_desc' => 'Genera un conjunto de códigos de seguridad de un solo uso que ingresará al iniciar sesión para verificar su identidad. Asegúrese de guardarlos en un lugar seguro.',
'mfa_gen_confirm_and_enable' => 'Confirmar y Activar',
'mfa_gen_backup_codes_title' => 'Configuración de Códigos de Respaldo',
'mfa_gen_backup_codes_desc' => 'Guarda la siguiente lista de códigos en un lugar seguro. Al acceder al sistema podrás usar uno de los códigos como un segundo mecanismo de autenticación.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Driver social no encontrado',
'social_driver_not_configured' => 'Su configuración :socialAccount no es correcta.',
'invite_token_expired' => 'Este enlace de invitación ha expirado. Puede resetear la contraseña de su cuenta como alternativa.',
'login_user_not_found' => 'No se pudo encontrar un usuario para esta acción.',
// System
'path_not_writable' => 'El fichero no pudo ser subido a la ruta :filePath . Asegúrese de que es escribible por el servidor.',

View File

@@ -97,7 +97,7 @@ return [
'api_token_create_notification' => 'Token de API creado correctamente',
'api_token_update' => 'token de API actualizado',
'api_token_update_notification' => 'Token de API actualizado correctamente',
'api_token_delete' => 'token de API borrado',
'api_token_delete' => 'API token eliminado',
'api_token_delete_notification' => 'Token de API eliminado correctamente',
// Roles
@@ -115,9 +115,9 @@ return [
// Comments
'commented_on' => 'comentado',
'comment_create' => 'comentario añadido',
'comment_create' => 'comentario agregado',
'comment_update' => 'comentario actualizado',
'comment_delete' => 'comentario borrado',
'comment_delete' => 'comentario eliminado',
// Other
'permissions_update' => 'permisos actualizados',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Aplicación móvil',
'mfa_option_totp_desc' => 'Para utilizar la autenticación en dos pasos necesitará una aplicación móvil que soporte TOTP como Google Authenticator, Authy o Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Códigos de Respaldo',
'mfa_option_backup_codes_desc' => 'Almacene de forma segura un conjunto de códigos de respaldo de un solo uso que pueda introducir para verificar su identidad.',
'mfa_option_backup_codes_desc' => 'Genera un conjunto de códigos de seguridad de un solo uso que ingresará al iniciar sesión para verificar su identidad. Asegúrese de guardarlos en un lugar seguro.',
'mfa_gen_confirm_and_enable' => 'Confirmar y Activar',
'mfa_gen_backup_codes_title' => 'Configuración de Códigos de Respaldo',
'mfa_gen_backup_codes_desc' => 'Guarde la siguiente lista de códigos en un lugar seguro. Al acceder al sistema podrá usar uno de los códigos como un segundo mecanismo de autenticación.',

View File

@@ -12,7 +12,7 @@ return [
'save' => 'Guardar',
'continue' => 'Continuar',
'select' => 'Seleccionar',
'toggle_all' => 'Alternar todo',
'toggle_all' => 'Mostrar/Ocultar Todo',
'more' => 'Más',
// Form Labels
@@ -20,7 +20,7 @@ return [
'description' => 'Descripción',
'role' => 'Rol',
'cover_image' => 'Imagen de cubierta',
'cover_image_description' => 'Esta imagen debe ser de aproximadamente 440x250px aunque será escalada y recortada para adaptarse a la interfaz de usuario en diferentes escenarios según sea necesario, por lo que las dimensiones en pantalla diferirán.',
'cover_image_description' => 'Esta imagen debe ser de 440x250px aproximadamente, aunque será escalada y recortada para adaptarse a la interfaz de usuario en los diferentes escenarios según sea necesario, por lo que las dimensiones en pantalla serán diferentes.',
// Actions
'actions' => 'Acciones',
@@ -42,7 +42,7 @@ return [
'remove' => 'Remover',
'add' => 'Agregar',
'configure' => 'Configurar',
'manage' => 'Gestionar',
'manage' => 'Administra',
'fullscreen' => 'Pantalla completa',
'favourite' => 'Favoritos',
'unfavourite' => 'Eliminar de favoritos',
@@ -70,8 +70,8 @@ return [
'no_items' => 'No hay elementos disponibles',
'back_to_top' => 'Volver arriba',
'skip_to_main_content' => 'Ir al contenido principal',
'toggle_details' => 'Alternar detalles',
'toggle_thumbnails' => 'Alternar miniaturas',
'toggle_details' => 'Mostrar/Ocultar Detalles',
'toggle_thumbnails' => 'Mostrar/Ocultar Miniaturas',
'details' => 'Detalles',
'grid_view' => 'Vista de grilla',
'list_view' => 'Vista de lista',

View File

@@ -34,7 +34,7 @@ return [
'image_delete_success' => 'Imagen borrada exitosamente',
'image_replace' => 'Reemplazar imagen',
'image_replace_success' => 'Imagen actualizada correctamente',
'image_rebuild_thumbs' => 'Regenerar distintos tamaños',
'image_rebuild_thumbs' => 'Regenerar Variaciones de Tamaño',
'image_rebuild_thumbs_success' => '¡Imágenes de distinto tamaño regeneradas correctamente!',
// Code Editor

View File

@@ -81,9 +81,9 @@ return [
'table_properties' => 'Propiedades de tabla',
'table_properties_title' => 'Propiedades de Tabla',
'delete_table' => 'Eliminar tabla',
'table_clear_formatting' => 'Limpiar formato de tabla',
'table_clear_formatting' => 'Limpiar el formato de tabla',
'resize_to_contents' => 'Redimensionar al contenido',
'row_header' => 'Fila de cabecera',
'row_header' => 'Cabecera de fila',
'insert_row_before' => 'Insertar fila arriba',
'insert_row_after' => 'Insertar fila abajo',
'delete_row' => 'Eliminar fila',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Driver social no encontrado',
'social_driver_not_configured' => 'Su configuración :socialAccount no es correcta.',
'invite_token_expired' => 'El enace de la esta invitación expiró. Puede intentar restablecer la contraseña de su cuenta',
'login_user_not_found' => 'No se pudo encontrar un usuario para esta acción.',
// System
'path_not_writable' => 'La ruta :filePath no pudo ser cargada. Asegurese de que es escribible por el servidor.',

View File

@@ -93,11 +93,11 @@ return [
'user_delete_notification' => 'Kasutaja on kustutatud',
// API Tokens
'api_token_create' => 'created API token',
'api_token_create' => 'lisas API tunnuse',
'api_token_create_notification' => 'API tunnus on lisatud',
'api_token_update' => 'updated API token',
'api_token_update' => 'muutis API tunnust',
'api_token_update_notification' => 'API tunnus on muudetud',
'api_token_delete' => 'deleted API token',
'api_token_delete' => 'kustutas API tunnuse',
'api_token_delete_notification' => 'API tunnus on kustutatud',
// Roles

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobiilirakendus',
'mfa_option_totp_desc' => 'Mitmeastmelise autentimise kasutamiseks on sul vaja TOTP-toega mobiilirakendust, nagu Google Authenticator, Authy või Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Varukoodid',
'mfa_option_backup_codes_desc' => 'Hoiusta kindlas kohas komplekt ühekordseid varukoode, millega saad oma isikut tuvastada.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Kinnita ja lülita sisse',
'mfa_gen_backup_codes_title' => 'Varukoodide seadistamine',
'mfa_gen_backup_codes_desc' => 'Hoiusta allolevad koodid turvalises kohas. Saad neid kasutada sisselogimisel sekundaarse autentimismeetodina.',

View File

@@ -20,7 +20,7 @@ return [
'description' => 'Kirjeldus',
'role' => 'Roll',
'cover_image' => 'Kaanepilt',
'cover_image_description' => 'This image should be approximately 440x250px although it will be flexibly scaled & cropped to fit the user interface in different scenarios as required, so actual dimensions for display will differ.',
'cover_image_description' => 'See pildifail peaks olema umbes 440x250px, ehkki seda skaleeritakse ja lõigatakse vastavalt vajadusele, et see mahuks erinevatesse kasutajaliidestesse, seega tegelikud kuvamõõdud võivad erineda.',
// Actions
'actions' => 'Tegevused',

View File

@@ -81,9 +81,9 @@ return [
'table_properties' => 'Tabeli omadused',
'table_properties_title' => 'Tabeli omadused',
'delete_table' => 'Kustuta tabel',
'table_clear_formatting' => 'Clear table formatting',
'resize_to_contents' => 'Resize to contents',
'row_header' => 'Row header',
'table_clear_formatting' => 'Eemalda tabeli vormindus',
'resize_to_contents' => 'Muuda suurus sisule vastavaks',
'row_header' => 'Päiserida',
'insert_row_before' => 'Sisesta rida enne',
'insert_row_after' => 'Sisesta rida pärast',
'delete_row' => 'Kustuta rida',

View File

@@ -23,7 +23,7 @@ return [
'meta_updated' => 'Muudetud :timeLength',
'meta_updated_name' => 'Muudetud :timeLength kasutaja :user poolt',
'meta_owned_name' => 'Kuulub kasutajale :user',
'meta_reference_count' => 'Referenced by :count item|Referenced by :count items',
'meta_reference_count' => 'Viidatud :count objekti poolt|Viidatud :count objekti poolt',
'entity_select' => 'Objekti valik',
'entity_select_lack_permission' => 'Sul pole õiguseid selle objekti valimiseks',
'images' => 'Pildid',
@@ -39,9 +39,9 @@ return [
'export_pdf' => 'PDF fail',
'export_text' => 'Tekstifail',
'export_md' => 'Markdown fail',
'default_template' => 'Default Page Template',
'default_template_explain' => 'Assign a page template that will be used as the default content for all pages created within this item. Keep in mind this will only be used if the page creator has view access to the chosen template page.',
'default_template_select' => 'Select a template page',
'default_template' => 'Vaikimisi lehe mall',
'default_template_explain' => 'Vali lehe mall, mida kasutatakse kõigi selle objekti sees loodud lehtede vaikimisi sisuna. Pea meeles, et seda kasutatakse ainult siis, kui lehe loojal on valitud malli vaatamise õigus.',
'default_template_select' => 'Vali mall',
// Permissions and restrictions
'permissions' => 'Õigused',
@@ -207,7 +207,7 @@ return [
'pages_delete_draft' => 'Kustuta mustand',
'pages_delete_success' => 'Leht kustutatud',
'pages_delete_draft_success' => 'Mustand kustutatud',
'pages_delete_warning_template' => 'This page is in active use as a book or chapter default page template. These books or chapters will no longer have a default page template assigned after this page is deleted.',
'pages_delete_warning_template' => 'See leht on valitud raamatu või peatüki lehe malliks. Pärast selle lehe kustutamist ei ole vastavatel raamatutel või peatükkidel enam vaikimisi lehe malli.',
'pages_delete_confirm' => 'Kas oled kindel, et soovid selle lehe kustutada?',
'pages_delete_draft_confirm' => 'Kas oled kindel, et soovid selle mustandi kustutada?',
'pages_editing_named' => 'Lehe :pageName muutmine',
@@ -409,7 +409,7 @@ return [
// References
'references' => 'Viited',
'references_none' => 'Sellele objektile ei ole viiteid.',
'references_to_desc' => 'Listed below is all the known content in the system that links to this item.',
'references_to_desc' => 'Allpool on kogu teadaolev sisu süsteemis, mis sellele objektile viitab.',
// Watch Options
'watch' => 'Jälgi',

View File

@@ -10,7 +10,7 @@ return [
// Auth
'error_user_exists_different_creds' => 'See e-posti aadress on juba seotud teise kasutajaga.',
'auth_pre_register_theme_prevention' => 'User account could not be registered for the provided details',
'auth_pre_register_theme_prevention' => 'Etteantud detailidega kasutajakontot ei saadud registreerida',
'email_already_confirmed' => 'E-posti aadress on juba kinnitatud. Proovi sisse logida.',
'email_confirmation_invalid' => 'Kinnituslink ei ole kehtiv või on seda juba kasutatud. Proovi uuesti registreeruda.',
'email_confirmation_expired' => 'Kinnituslink on aegunud. Sulle saadeti aadressi kinnitamiseks uus e-kiri.',
@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Sotsiaalmeedia kontode draiverit ei leitud',
'social_driver_not_configured' => 'Sinu :socialAccount konto seaded ei ole korrektsed.',
'invite_token_expired' => 'Link on aegunud. Võid selle asemel proovida oma konto parooli lähtestada.',
'login_user_not_found' => 'Selle tegevuse jaoks ei leitud kasutajat.',
// System
'path_not_writable' => 'Faili asukohaga :filePath ei õnnestunud üles laadida. Veendu, et serveril on kirjutusõigused.',

View File

@@ -109,7 +109,7 @@ return [
'recycle_bin_contents_empty' => 'Prügikast on hetkel tühi',
'recycle_bin_empty' => 'Tühjenda prügikast',
'recycle_bin_empty_confirm' => 'See kustutab lõplikult kõik objektid prügikastis, kaasa arvatud nende sisu. Kas oled kindel, et soovid prügikasti tühjendada?',
'recycle_bin_destroy_confirm' => 'This action will permanently delete this item from the system, along with any child elements listed below, and you will not be able to restore this content. Are you sure you want to permanently delete this item?',
'recycle_bin_destroy_confirm' => 'See kustutab lõplikult süsteemist valitud objekti koos loetletud alamobjektidega, ja seda sisu ei ole enam võimalik taastada. Kas oled kindel, et soovid selle objekti kustutada?',
'recycle_bin_destroy_list' => 'Kustutatavad objektid',
'recycle_bin_restore_list' => 'Taastatavad objektid',
'recycle_bin_restore_confirm' => 'See taastab valitud objekti koos kõigi alamobjektidega nende algsesse asukohta. Kui see asukoht on ka vahepeal kustutatud ja on nüüd prügikastis, tuleb ka see taastada.',
@@ -277,13 +277,13 @@ return [
'webhooks_last_error_message' => 'Viimane veateade:',
// Licensing
'licenses' => 'Licenses',
'licenses_desc' => 'This page details license information for BookStack in addition to the projects & libraries that are used within BookStack. Many projects listed may only be used in a development context.',
'licenses_bookstack' => 'BookStack License',
'licenses_php' => 'PHP Library Licenses',
'licenses_js' => 'JavaScript Library Licenses',
'licenses_other' => 'Other Licenses',
'license_details' => 'License Details',
'licenses' => 'Litsentsid',
'licenses_desc' => 'See leht koondab litsentsiinfot BookStack\'i ja selles kasutatud projektide ja teekide kohta. Paljusid loetletud teekidest võidakse kasutada ainult arenduse kontekstis.',
'licenses_bookstack' => 'BookStack\'i litsents',
'licenses_php' => 'PHP teekide litsentsid',
'licenses_js' => 'JavaScript teekide litsentsid',
'licenses_other' => 'Muud litsentsid',
'license_details' => 'Litsentsi detailid',
//! If editing translations files directly please ignore this in all
//! languages apart from en. Content will be auto-copied from en.

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Aplikazio mugikorra',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Codes',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Baieztatu eta gaitu',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Social driver not found',
'social_driver_not_configured' => 'Your :socialAccount social settings are not configured correctly.',
'invite_token_expired' => 'This invitation link has expired. You can instead try to reset your account password.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'File path :filePath could not be uploaded to. Ensure it is writable to the server.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'برنامه ی موبایل',
'mfa_option_totp_desc' => 'برای استفاده از احراز هویت چند عاملی به یک برنامه موبایلی نیاز دارید که از TOTP پشتیبانی کند، مانند Google Authenticator، Authy یا Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'کدهای پشتیبان',
'mfa_option_backup_codes_desc' => 'مجموعه ای از کدهای پشتیبان یکبار مصرف را ایمن ذخیره کنید که می توانید برای تأیید هویت خود وارد کنید.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'تایید و فعال کنید',
'mfa_gen_backup_codes_title' => 'راه اندازی کدهای پشتیبان',
'mfa_gen_backup_codes_desc' => 'لیست کدهای زیر را در مکانی امن ذخیره کنید. هنگام دسترسی به سیستم، می توانید از یکی از کدها به عنوان مکانیزم احراز هویت دوم استفاده کنید.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'درایور شبکه اجتماعی یافت نشد',
'social_driver_not_configured' => 'تنظیمات شبکه اجتماعی :socialAccount به درستی پیکربندی نشده است.',
'invite_token_expired' => 'این پیوند دعوت منقضی شده است. در عوض می توانید سعی کنید رمز عبور حساب خود را بازنشانی کنید.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'مسیر فایل :filePath را نمی توان در آن آپلود کرد. مطمئن شوید که روی سرور قابل نوشتن است.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobiilisovellus',
'mfa_option_totp_desc' => 'Jos haluat käyttää monivaiheista tunnistautumista, tarvitset mobiilisovelluksen, joka tukee TOTP:tä, kuten Google Authenticator, Authy tai Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Varmistuskoodit',
'mfa_option_backup_codes_desc' => 'Tallenna turvallisesti joukko kertakäyttöisiä varmistuskoodeja, jotka voit syöttää henkilöllisyytesi varmentamiseksi.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Vahvista ja ota käyttöön',
'mfa_gen_backup_codes_title' => 'Varmistuskoodien asetukset',
'mfa_gen_backup_codes_desc' => 'Säilytä alla oleva luettelo koodeista turvallisessa paikassa. Kun käytät järjestelmää, voit käyttää yhtä koodeista toisena tunnistautumistapana.',

View File

@@ -38,6 +38,7 @@ Sovellus ei tunnista ulkoisen todennuspalvelun pyyntöä. Ongelman voi aiheuttaa
'social_driver_not_found' => 'Sosiaalisen median tilin ajuria ei löytynyt',
'social_driver_not_configured' => ':socialAccount-tilin asetuksia ei ole määritetty oikein.',
'invite_token_expired' => 'Tämä kutsulinkki on vanhentunut. Voit sen sijaan yrittää palauttaa tilisi salasanan.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Tiedostopolkuun :filePath ei voitu ladata tiedostoa. Tarkista polun kirjoitusoikeudet.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Application mobile',
'mfa_option_totp_desc' => 'Pour utiliser l\'authentification multi-facteurs, vous aurez besoin d\'une application mobile qui supporte TOTP comme Google Authenticator, Authy ou Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Codes de secours',
'mfa_option_backup_codes_desc' => 'Stockez en toute sécurité un jeu de codes de secours que vous pourrez utiliser pour vérifier votre identité.',
'mfa_option_backup_codes_desc' => 'Génère un ensemble de codes de sauvegarde à usage unique que vous saisirez lors de la connexion pour vérifier votre identité. Veillez à les conserver dans un endroit sûr.',
'mfa_gen_confirm_and_enable' => 'Confirmer et activer',
'mfa_gen_backup_codes_title' => 'Configuration des codes de secours',
'mfa_gen_backup_codes_desc' => 'Stockez la liste des codes ci-dessous dans un endroit sûr. Lorsque vous accédez au système, vous pourrez utiliser l\'un des codes comme un deuxième mécanisme d\'authentification.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Pilote de compte de réseaux sociaux absent',
'social_driver_not_configured' => 'Vos préférences pour le compte :socialAccount sont incorrectes.',
'invite_token_expired' => 'Le lien de cette invitation a expiré. Vous pouvez essayer de réinitialiser votre mot de passe.',
'login_user_not_found' => 'Impossible de trouver un utilisateur pour cette action.',
// System
'path_not_writable' => 'Impossible d\'écrire dans :filePath. Assurez-vous d\'avoir les droits d\'écriture sur le serveur',

View File

@@ -222,7 +222,7 @@ return [
'users_api_tokens_desc' => 'Créer et gérer les jetons d\'accès utilisés pour s\'authentifier avec l\'API REST de BookStack. Les permissions pour l\'API sont gérées par l\'utilisateur auquel le jeton appartient.',
'users_api_tokens_none' => 'Aucun jeton API n\'a été créé pour cet utilisateur',
'users_api_tokens_create' => 'Créer un jeton',
'users_api_tokens_expires' => 'Expiré',
'users_api_tokens_expires' => 'Expire',
'users_api_tokens_docs' => 'Documentation de l\'API',
'users_mfa' => 'Authentification multi-facteurs',
'users_mfa_desc' => 'Configurer l\'authentification multi-facteurs ajoute une couche supplémentaire de sécurité à votre compte utilisateur.',

View File

@@ -6,13 +6,13 @@
return [
// Pages
'page_create' => 'דף נוצר',
'page_create' => 'הדף נוצר',
'page_create_notification' => 'הדף נוצר בהצלחה',
'page_update' => 'דף עודכן',
'page_update' => 'הדף עודכן',
'page_update_notification' => 'הדף עודכן בהצלחה',
'page_delete' => 'דף נמחק',
'page_delete' => 'הדף נמחק',
'page_delete_notification' => 'הדף הוסר בהצלחה',
'page_restore' => 'דף שוחזר',
'page_restore' => 'הדף שוחזר',
'page_restore_notification' => 'הדף שוחזר בהצלחה',
'page_move' => 'דף הועבר',
'page_move_notification' => 'Page successfully moved',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'אפליקציה לנייד',
'mfa_option_totp_desc' => 'בכדי להשתמש באימות רב-שלבי תצטרך אפליקציית מובייל תומכת TOTP כמו Google Authenticator, Authy או Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'קודי גיבוי',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Social driver not found',
'social_driver_not_configured' => 'הגדרות ה :socialAccount אינן מוגדרות כראוי',
'invite_token_expired' => 'לינק ההזמנה פג. אתה יכול לנסות לאפס את סיסמת החשבון שלך במקום.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'לא ניתן להעלות את :filePath אנא ודא שניתן לכתוב למיקום זה',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobilna Aplikacija',
'mfa_option_totp_desc' => 'Da biste koristili višestruku provjeru autentičnosti, trebat će vam mobilna aplikacija koja podržava TOTP (Time-Based One-Time Password) kao što su Google Authenticator, Authy ili Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Rezervni Kodovi',
'mfa_option_backup_codes_desc' => 'Sigurno pohranite set jednokratnih rezervnih kodova koje možete unijeti kako biste potvrdili svoj identitet.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Potvrdi i Omogući',
'mfa_gen_backup_codes_title' => 'Postavke Rezervnih Kodova',
'mfa_gen_backup_codes_desc' => 'Spremite sljedeći popis kodova na sigurno mjesto. Prilikom pristupa sustavu, moći ćete koristiti jedan od ovih kodova kao drugi mehanizam autentifikacije.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Nije pronađeno',
'social_driver_not_configured' => 'Postavke vašeg :socialAccount računa nisu ispravno postavljene.',
'invite_token_expired' => 'Vaša pozivnica je istekla. Pokušajte ponovno postaviti lozinku.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Datoteka :filePath ne može se prenijeti. Učinite je lakše prepoznatljivom vašem serveru.',

View File

@@ -93,11 +93,11 @@ return [
'user_delete_notification' => 'Felhasználó sikeresen eltávolítva',
// API Tokens
'api_token_create' => 'created API token',
'api_token_create' => 'létrehozott API token',
'api_token_create_notification' => 'API token sikeresen létrehozva',
'api_token_update' => 'updated API token',
'api_token_update' => 'frissített API token',
'api_token_update_notification' => 'API token sikeresen frissítve',
'api_token_delete' => 'deleted API token',
'api_token_delete' => 'törölt API token',
'api_token_delete_notification' => 'API token sikeresen törölve',
// Roles

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobilalkalmazás',
'mfa_option_totp_desc' => 'A többlépcsős azonosításhoz olyan mobilalkalmazásra lesz szükséged, amely támogatja a TOTP-t, például a Google Authenticator, az Authy vagy a Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Visszaállítási kulcsok',
'mfa_option_backup_codes_desc' => 'Biztonságosan tárolja el az egyszer használatos visszaállítási kódjait, amiket a későbbiekben fel tud majd használni bejelentkezése során.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Jóváhagyás és engedélyezés',
'mfa_gen_backup_codes_title' => 'Visszaállítási kódok beállítása',
'mfa_gen_backup_codes_desc' => 'Tárolja el egy biztonságos helyen az alábbi kódokat. Bejelentkezés során fel tudja használni őket másodlagos bejelentkezési kódként.',

View File

@@ -20,7 +20,7 @@ return [
'description' => 'Leírás',
'role' => 'Szerepkör',
'cover_image' => 'Borítókép',
'cover_image_description' => 'This image should be approximately 440x250px although it will be flexibly scaled & cropped to fit the user interface in different scenarios as required, so actual dimensions for display will differ.',
'cover_image_description' => 'Ennek a képnek körülbelül 440 x 250 képpont méretűnek kell lennie, bár rugalmasan méretezhető és levágható, hogy a felhasználói felülethez illeszkedjen a különböző lehetőségek esetén, így a megjelenítés tényleges méretei eltérőek lesznek.',
// Actions
'actions' => 'Műveletek',

View File

@@ -81,9 +81,9 @@ return [
'table_properties' => 'Táblázat tulajdonságai',
'table_properties_title' => 'Táblázat Tulajdonságai',
'delete_table' => 'Táblázat törlése',
'table_clear_formatting' => 'Clear table formatting',
'resize_to_contents' => 'Resize to contents',
'row_header' => 'Row header',
'table_clear_formatting' => 'bla formázás törlése',
'resize_to_contents' => 'Átméretezés a tartalomhoz',
'row_header' => 'Sorfejléc',
'insert_row_before' => 'Sor beszúrása elé',
'insert_row_after' => 'Sor beszúrása mögé',
'delete_row' => 'Sor törlése',
@@ -135,7 +135,7 @@ return [
'cell_border_groove' => 'Horony',
'cell_border_ridge' => 'Domború',
'cell_border_inset' => 'Behúzott',
'cell_border_outset' => 'Outset',
'cell_border_outset' => 'Kiemelés',
'cell_border_none' => 'Egyik sem',
'cell_border_hidden' => 'Rejtett',

View File

@@ -276,7 +276,7 @@ return [
'pages_pointer_enter_mode' => 'Lépjen be a szakaszválasztó módba',
'pages_pointer_label' => 'Oldalszakasz beállításai',
'pages_pointer_permalink' => 'Oldalszakasz állandó hivatkozás',
'pages_pointer_include_tag' => 'Page Section Include Tag',
'pages_pointer_include_tag' => 'Oldalszakasz tartalmazza a címkét',
'pages_pointer_toggle_link' => 'Permalink mód, Nyomja meg az include tag megjelenítéséhez',
'pages_pointer_toggle_include' => 'Include tag mód, Nyomja meg az permalink megjelenítéséhez',
'pages_permissions_active' => 'Oldal jogosultságok aktívak',

View File

@@ -10,7 +10,7 @@ return [
// Auth
'error_user_exists_different_creds' => ':email címmel már létezik felhasználó, de más hitelesítő adatokkal.',
'auth_pre_register_theme_prevention' => 'User account could not be registered for the provided details',
'auth_pre_register_theme_prevention' => 'A felhasználói fiók nem regisztrálható a megadott adatokkal',
'email_already_confirmed' => 'Az email cím már meg van erősítve, meg lehet próbálni a bejelentkezést.',
'email_confirmation_invalid' => 'A megerősítő vezérjel nem érvényes vagy használva volt. Meg kell próbálni újraregisztrálni.',
'email_confirmation_expired' => 'A megerősítő vezérjel lejárt. Egy új megerősítő email lett elküldve.',
@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Közösségi meghajtó nem található',
'social_driver_not_configured' => ':socialAccount közösségi beállítások nem megfelelőek.',
'invite_token_expired' => 'Ez a meghívó hivatkozás lejárt. Helyette meg lehet próbálni új jelszót megadni a fiókhoz.',
'login_user_not_found' => 'A művelethez nem található felhasználó.',
// System
'path_not_writable' => ':filePath elérési út nem tölthető fel. Ellenőrizni kell, hogy az útvonal a kiszolgáló számára írható.',

View File

@@ -27,7 +27,7 @@ return [
'notifications_save' => 'Beállítások mentése',
'notifications_update_success' => 'Az értesítési beállítások frissítve lettek!',
'notifications_watched' => 'Megfigyelt és figyelmen kívül hagyott elemek',
'notifications_watched_desc' => 'Az alábbi elemekre egyedi figyelési beállítások vannak alkalmazva. A beállítások frissítéséhez tekintsd meg az elemet, majd keress a figyelési lehetőségeket az oldalsávban.',
'notifications_watched_desc' => 'Az alábbi elemekre egyedi figyelési beállítások vannak alkalmazva. A beállítások frissítéséhez tekintsd meg az elemet, majd keresd a figyelési lehetőségeket az oldalsávban.',
'auth' => 'Hozzáférés és Biztonság',
'auth_change_password' => 'Jelszó módosítása',

View File

@@ -109,7 +109,7 @@ return [
'recycle_bin_contents_empty' => 'A lomtár jelenleg üres',
'recycle_bin_empty' => 'Lomtár kiürítése',
'recycle_bin_empty_confirm' => 'Ezzel véglegesen megsemmisíti a lomtárban lévő összes elemet, beleértve az egyes tételekben található tartalmat is. Biztos benne, hogy ki akarja üríteni a lomtárat?',
'recycle_bin_destroy_confirm' => 'This action will permanently delete this item from the system, along with any child elements listed below, and you will not be able to restore this content. Are you sure you want to permanently delete this item?',
'recycle_bin_destroy_confirm' => 'Ez a művelet véglegesen törli ezt az elemet a rendszerből az alább felsorolt összes alárendelt elemmel együtt, és nem fogja tudni visszaállítani ezt a tartalmat. Biztosan véglegesen törli ezt az elemet?',
'recycle_bin_destroy_list' => 'Megsemmisítendő elemek',
'recycle_bin_restore_list' => 'Visszaállítandó elemek',
'recycle_bin_restore_confirm' => 'Ez a művelet visszaállítja a törölt elemet, beleértve az utódelemeket is, az eredeti helyükre. Ha az eredeti helyet azóta törölték, és most a lomtárban van, akkor a szülőelemet is vissza kell állítani.',
@@ -277,13 +277,13 @@ return [
'webhooks_last_error_message' => 'Utolsó hibaüzenet:',
// Licensing
'licenses' => 'Licenses',
'licenses_desc' => 'This page details license information for BookStack in addition to the projects & libraries that are used within BookStack. Many projects listed may only be used in a development context.',
'licenses_bookstack' => 'BookStack License',
'licenses_php' => 'PHP Library Licenses',
'licenses_js' => 'JavaScript Library Licenses',
'licenses_other' => 'Other Licenses',
'license_details' => 'License Details',
'licenses' => 'Licenszek',
'licenses_desc' => 'Ez az oldal a BookStack licencinformációit részletezi, a BookStackben használt projekteken és könyvtárakon kívül. Sok felsorolt projekt csak fejlesztési környezetben használható.',
'licenses_bookstack' => 'BookStack Licensz',
'licenses_php' => 'PHP könyvtár licencek',
'licenses_js' => 'JavaScript könyvtár licencek',
'licenses_other' => 'Egyéb licencek',
'license_details' => 'Licenc részletek',
//! If editing translations files directly please ignore this in all
//! languages apart from en. Content will be auto-copied from en.

View File

@@ -15,7 +15,7 @@ return [
'page_restore' => 'halaman telah dipulihkan',
'page_restore_notification' => 'Halaman berhasil dipulihkan',
'page_move' => 'halaman dipindahkan',
'page_move_notification' => 'Page successfully moved',
'page_move_notification' => 'Halaman berhasil dipindahkan',
// Chapters
'chapter_create' => 'membuat bab',
@@ -25,7 +25,7 @@ return [
'chapter_delete' => 'hapus bab',
'chapter_delete_notification' => 'Bab berhasil dihapus',
'chapter_move' => 'bab dipindahkan',
'chapter_move_notification' => 'Chapter successfully moved',
'chapter_move_notification' => 'Bab berhasil dipindahkan',
// Books
'book_create' => 'membuat buku',
@@ -50,31 +50,31 @@ return [
'bookshelf_delete_notification' => 'Rak berhasil dihapus',
// Revisions
'revision_restore' => 'restored revision',
'revision_delete' => 'deleted revision',
'revision_delete_notification' => 'Revision successfully deleted',
'revision_restore' => 'revisi yang dipulihkan',
'revision_delete' => 'revisi yang dihapus',
'revision_delete_notification' => 'Revisi berhasil dihapus',
// Favourites
'favourite_add_notification' => '":name" telah ditambahkan ke favorit Anda',
'favourite_remove_notification' => '":name" telah dihapus dari favorit Anda',
// Watching
'watch_update_level_notification' => 'Watch preferences successfully updated',
'watch_update_level_notification' => 'Preferensi pantauan berhasil diperbarui',
// Auth
'auth_login' => 'logged in',
'auth_register' => 'registered as new user',
'auth_password_reset_request' => 'requested user password reset',
'auth_password_reset_update' => 'reset user password',
'mfa_setup_method' => 'configured MFA method',
'auth_login' => 'telah masuk',
'auth_register' => 'daftar sebagai user baru',
'auth_password_reset_request' => 'permintaan pengguna mengatur ulang kata sandi',
'auth_password_reset_update' => 'atur ulang kata sandi pengguna',
'mfa_setup_method' => 'metode MFA yang dikonfigurasi',
'mfa_setup_method_notification' => 'Metode multi-faktor sukses dikonfigurasi',
'mfa_remove_method' => 'removed MFA method',
'mfa_remove_method' => 'menghapus metode MFA',
'mfa_remove_method_notification' => 'Metode multi-faktor sukses dihapus',
// Settings
'settings_update' => 'updated settings',
'settings_update_notification' => 'Settings successfully updated',
'maintenance_action_run' => 'ran maintenance action',
'settings_update_notification' => 'Pengaturan berhasil diperbarui',
'maintenance_action_run' => 'menjalankan tindakan pemeliharaan',
// Webhooks
'webhook_create' => 'membuat webhook',
@@ -85,20 +85,20 @@ return [
'webhook_delete_notification' => 'Webhook berhasil dihapus',
// Users
'user_create' => 'created user',
'user_create_notification' => 'User successfully created',
'user_update' => 'updated user',
'user_create' => 'pengguna yang dibuat',
'user_create_notification' => 'Pengguna berhasil dibuat',
'user_update' => 'perbarui Pengguna',
'user_update_notification' => 'Pengguna berhasil diperbarui',
'user_delete' => 'deleted user',
'user_delete' => 'pengguna yang dihapus',
'user_delete_notification' => 'Pengguna berhasil dihapus',
// API Tokens
'api_token_create' => 'created API token',
'api_token_create_notification' => 'API token successfully created',
'api_token_update' => 'updated API token',
'api_token_update_notification' => 'API token successfully updated',
'api_token_delete' => 'deleted API token',
'api_token_delete_notification' => 'API token successfully deleted',
'api_token_create' => 'API token yang dibuat',
'api_token_create_notification' => 'Token API berhasil dibuat',
'api_token_update' => 'token API yang diperbarui',
'api_token_update_notification' => 'token API berhasil dirubah',
'api_token_delete' => 'token API yang dihapus',
'api_token_delete_notification' => 'token API berhasil dihapus ',
// Roles
'role_create' => 'created role',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Aplikasi Seluler',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Kode Cadangan',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Pengemudi sosial tidak ditemukan',
'social_driver_not_configured' => 'Pengaturan sosial :socialAccount Anda tidak dikonfigurasi dengan benar.',
'invite_token_expired' => 'Tautan undangan ini telah kedaluwarsa. Sebagai gantinya, Anda dapat mencoba mengatur ulang kata sandi akun Anda.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Jalur berkas :filePath tidak dapat diunggah. Pastikan berkas tersebut dapat ditulis ke server.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'App mobile',
'mfa_option_totp_desc' => 'Per utilizzare l\'autenticazione multi-fattore avrai bisogno di un\'applicazione mobile che supporti TOTP come Google Authenticator, Authy o Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Codici di backup',
'mfa_option_backup_codes_desc' => 'Salva in modo sicuro una serie di codici di backup monouso che puoi inserire per verificare la tua identità.',
'mfa_option_backup_codes_desc' => 'Genera un insieme di codici di backup monouso che inserirai al login per verificare la tua identità. Assicurati di conservarli in un luogo sicuro e sicuro.',
'mfa_gen_confirm_and_enable' => 'Conferma e abilita',
'mfa_gen_backup_codes_title' => 'Configurazione codici di backup',
'mfa_gen_backup_codes_desc' => 'Conserva l\'elenco di codici qui sotto in un luogo sicuro. Quando accedi al sistema potrai utilizzare uno dei codici come meccanismo di autenticazione secondario.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Driver social non trovato',
'social_driver_not_configured' => 'Le impostazioni di :socialAccount non sono configurate correttamente.',
'invite_token_expired' => 'Il link di invito è scaduto. Puoi provare a resettare la password del tuo account.',
'login_user_not_found' => 'Impossibile trovare un utente per questa azione.',
// System
'path_not_writable' => 'Il percorso :filePath non è scrivibile. Controlla che abbia i permessi corretti.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'モバイルアプリ',
'mfa_option_totp_desc' => '多要素認証を使用するには、Google Authenticator、Authy、Microsoft AuthenticatorなどのTOTPをサポートするモバイルアプリケーションが必要です。',
'mfa_option_backup_codes_title' => 'バックアップコード',
'mfa_option_backup_codes_desc' => '本人確認のために入力する、一度しか使えないバックアップコードを安全に保存します。',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => '確認して有効化',
'mfa_gen_backup_codes_title' => 'バックアップコードの設定',
'mfa_gen_backup_codes_desc' => '以下のコードのリストを安全な場所に保管してください。システムにアクセスする際、コードのいずれかを第二の認証手段として使用できます。',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Social driverが見つかりません',
'social_driver_not_configured' => 'あなたの:socialAccount設定は正しく構成されていません。',
'invite_token_expired' => 'この招待リンクの有効期限が切れています。 代わりにアカウントのパスワードをリセットしてみてください。',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'ファイルパス :filePath へアップロードできませんでした。サーバ上での書き込みが許可されているか確認してください。',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobile App',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Codes',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Social driver not found',
'social_driver_not_configured' => 'Your :socialAccount social settings are not configured correctly.',
'invite_token_expired' => 'This invitation link has expired. You can instead try to reset your account password.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'File path :filePath could not be uploaded to. Ensure it is writable to the server.',

View File

@@ -93,11 +93,11 @@ return [
'user_delete_notification' => '사용자가 삭제되었습니다',
// API Tokens
'api_token_create' => 'created API token',
'api_token_create' => '생성된 API 토큰',
'api_token_create_notification' => 'API 토큰이 성공적으로 생성되었습니다.',
'api_token_update' => 'updated API token',
'api_token_update' => '갱신된 API 토큰',
'api_token_update_notification' => 'API 토큰이 성공적으로 업데이트되었습니다.',
'api_token_delete' => 'deleted API token',
'api_token_delete' => '삭제된 API 토큰',
'api_token_delete_notification' => 'API 토큰이 성공적으로 삭제되었습니다.',
// Roles

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => '모바일 앱',
'mfa_option_totp_desc' => '다중 인증에는 Google Authenticator, Authy나 Microsoft Authenticator와 같은 TOTP 지원 모바일 앱이 필요합니다.',
'mfa_option_backup_codes_title' => '백업 코드',
'mfa_option_backup_codes_desc' => '일회 백업 코드를 안전한 장소에 보관하세요.',
'mfa_option_backup_codes_desc' => '로그인 시 인증에 사용되는 일회 백업 코드를 만듭니다. 이 백업 코드는 안전한 에 보관하세요.',
'mfa_gen_confirm_and_enable' => '확인 및 활성화',
'mfa_gen_backup_codes_title' => '백업 코드 설정',
'mfa_gen_backup_codes_desc' => '코드 목록을 안전한 장소에 보관하세요. 코드 중 하나를 2FA에 쓸 수 있습니다.',

View File

@@ -20,7 +20,7 @@ return [
'description' => '설명',
'role' => '권한',
'cover_image' => '대표 이미지',
'cover_image_description' => 'This image should be approximately 440x250px although it will be flexibly scaled & cropped to fit the user interface in different scenarios as required, so actual dimensions for display will differ.',
'cover_image_description' => '이 이미지는 필요에 따라 다양한 시나리오에서 사용자 인터페이스에 맞게 크기가 조정되거나 잘려질 수 있기 때문에 실제 표시되는 크기가 다를 수는 있지만 대략 440x250px 이어야 합니다.',
// Actions
'actions' => '활동',

View File

@@ -81,9 +81,9 @@ return [
'table_properties' => '테이블 속성',
'table_properties_title' => '테이블 속성',
'delete_table' => '테이블 삭제',
'table_clear_formatting' => 'Clear table formatting',
'resize_to_contents' => 'Resize to contents',
'row_header' => 'Row header',
'table_clear_formatting' => '테이블 형식 지우기',
'resize_to_contents' => '내용 크기 조정',
'row_header' => '행 머릿글',
'insert_row_before' => '앞에 행 추가',
'insert_row_after' => '뒤에 행 추가',
'delete_row' => '행 삭제',

View File

@@ -39,9 +39,9 @@ return [
'export_pdf' => 'PDF 파일',
'export_text' => '일반 텍스트 파일',
'export_md' => '마크다운 파일',
'default_template' => 'Default Page Template',
'default_template_explain' => 'Assign a page template that will be used as the default content for all pages created within this item. Keep in mind this will only be used if the page creator has view access to the chosen template page.',
'default_template_select' => 'Select a template page',
'default_template' => '기본 페이지 템플릿',
'default_template_explain' => '이 항목 내에서 생성되는 모든 페이지의 기본 콘텐츠로 사용할 페이지 템플릿을 지정합니다. 페이지 작성자가 선택한 템플릿 페이지를 볼 수 있는 권한이 있는 경우에만 이 항목이 사용된다는 점을 유의하세요.',
'default_template_select' => '템플릿 페이지 선택',
// Permissions and restrictions
'permissions' => '권한',
@@ -207,7 +207,7 @@ return [
'pages_delete_draft' => '초안 문서 삭제하기',
'pages_delete_success' => '문서 지움',
'pages_delete_draft_success' => '초안 문서 지움',
'pages_delete_warning_template' => 'This page is in active use as a book or chapter default page template. These books or chapters will no longer have a default page template assigned after this page is deleted.',
'pages_delete_warning_template' => '이 페이지는 책의 기본 페이지 템플릿으로 사용 중입니다. 이 페이지가 삭제되면 해당하는 책에 더 이상 기본 페이지 템플릿이 적용되지 않습니다.',
'pages_delete_confirm' => '이 문서를 지울 건가요?',
'pages_delete_draft_confirm' => '이 초안을 지울 건가요?',
'pages_editing_named' => ':pageName 수정',

View File

@@ -10,7 +10,7 @@ return [
// Auth
'error_user_exists_different_creds' => '이메일 :email 이 이미 존재하지만 다른 자격 증명을 가진 사용자입니다.',
'auth_pre_register_theme_prevention' => 'User account could not be registered for the provided details',
'auth_pre_register_theme_prevention' => '제공된 세부 정보로 사용자 계정을 등록할 수 없습니다',
'email_already_confirmed' => '이메일이 이미 확인되었으니 로그인해 보세요.',
'email_confirmation_invalid' => '이 확인 토큰이 유효하지 않거나 이미 사용되었습니다. 다시 등록해 주세요.',
'email_confirmation_expired' => '확인 토큰이 만료되었습니다. 새 확인 이메일이 전송되었습니다.',
@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => '소셜 드라이버를 찾을 수 없습니다.',
'social_driver_not_configured' => '소셜 계정 :socialAccount 가(이) 올바르게 구성되지 않았습니다.',
'invite_token_expired' => '이 초대 링크가 만료되었습니다. 대신 계정 비밀번호 재설정을 시도해 보세요.',
'login_user_not_found' => '이 동작의 사용자를 찾을 수 없습니다.',
// System
'path_not_writable' => '파일 경로 :filePath 에 업로드할 수 없습니다. 서버에 저장이 가능한지 확인하세요.',

View File

@@ -109,7 +109,7 @@ return [
'recycle_bin_contents_empty' => '휴지통이 비었습니다.',
'recycle_bin_empty' => '비우기',
'recycle_bin_empty_confirm' => '휴지통을 비울 건가요?',
'recycle_bin_destroy_confirm' => 'This action will permanently delete this item from the system, along with any child elements listed below, and you will not be able to restore this content. Are you sure you want to permanently delete this item?',
'recycle_bin_destroy_confirm' => '이 작업을 수행하면 이 항목이 아래에 나열된 모든 하위 요소와 함께 시스템에서 영구적으로 삭제되며, 복원할 수 없습니다. 이 항목을 영구 삭제하시겠어요?',
'recycle_bin_destroy_list' => '영구 삭제함',
'recycle_bin_restore_list' => '복원함',
'recycle_bin_restore_confirm' => '원래 위치로 복원합니다. 원래 위치의 부모 항목이 지워졌을 경우 부모 항목도 복원해야 합니다.',
@@ -277,13 +277,13 @@ return [
'webhooks_last_error_message' => '마지막 에러 메시지:',
// Licensing
'licenses' => 'Licenses',
'licenses_desc' => 'This page details license information for BookStack in addition to the projects & libraries that are used within BookStack. Many projects listed may only be used in a development context.',
'licenses_bookstack' => 'BookStack License',
'licenses_php' => 'PHP Library Licenses',
'licenses_js' => 'JavaScript Library Licenses',
'licenses_other' => 'Other Licenses',
'license_details' => 'License Details',
'licenses' => '라이선스',
'licenses_desc' => '이 페이지에서는 BookStack 내에서 사용되는 프로젝트 및 라이브러리 외에 BookStack 라이선스 정보를 자세히 설명합니다. 나열된 프로젝트는 개발 용도로만 사용할 수 있습니다.',
'licenses_bookstack' => 'BookStack 라이선스',
'licenses_php' => 'PHP 라이브러리 라이선스',
'licenses_js' => 'JavaScript 라이브러리 라이선스',
'licenses_other' => '기타 라이선스',
'license_details' => '라이선스 세부 사항',
//! If editing translations files directly please ignore this in all
//! languages apart from en. Content will be auto-copied from en.

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobile App',
'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Backup Codes',
'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Socialinis diskas nerastas',
'social_driver_not_configured' => 'Jūsų :socialAccount socaliniai nustatymai sukonfigūruoti neteisingai.',
'invite_token_expired' => 'Ši kvietimo nuoroda baigė galioti. Vietoj to, jūs galite bandyti iš naujo nustatyti savo paskyros slaptažodį.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Į failo kelią :filePath negalima įkelti. Įsitikinkite, kad jis yra įrašomas į serverį.',

View File

@@ -91,7 +91,7 @@ return [
'mfa_option_totp_title' => 'Mobilā aplikācija',
'mfa_option_totp_desc' => 'Lai lietotu vairākfaktoru autentifikāciju, jums būs nepieciešama mobilā aplikācija, kas atbalsta TOTP, piemēram, Google Authenticator, Authy vai Microsoft Authenticator.',
'mfa_option_backup_codes_title' => 'Rezerves kodi',
'mfa_option_backup_codes_desc' => 'Droši noglabājiet vienreizlietojamu rezerves kodu komplektu, ko varēsiet izmantot, lai verificētu savu identitāti.',
'mfa_option_backup_codes_desc' => 'Generates a set of one-time-use backup codes which you\'ll enter on login to verify your identity. Make sure to store these in a safe & secure place.',
'mfa_gen_confirm_and_enable' => 'Apstiprināt un ieslēgt',
'mfa_gen_backup_codes_title' => 'Rezerves kodu iestatījumi',
'mfa_gen_backup_codes_desc' => 'Noglabājiet zemāk esošo kodu sarakstu drošā vietā. Kad piekļūsiet sistēmai, jūs varēsiet izmantot vienu no kodiem kā papildus autentifikācijas mehānismu.',

View File

@@ -37,6 +37,7 @@ return [
'social_driver_not_found' => 'Sociālā tīkla savienojums nav atrasts',
'social_driver_not_configured' => 'Jūsu :socialAccount sociālie iestatījumi nav uzstādīti pareizi.',
'invite_token_expired' => 'Šī uzaicinājuma saite ir novecojusi. Tā vietā jūs varat mēģināt atiestatīt sava konta paroli.',
'login_user_not_found' => 'A user for this action could not be found.',
// System
'path_not_writable' => 'Faila ceļā :filePath nav iespējams ielādēt failus. Lūdzu pārliecinieties, ka serverim tur ir rakstīšanas tiesības.',

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