Use Notification/Notifiable (#379)

* Add migrations for notifiables

* Configure spatie-backup to run as part of cron

* Convert Mailer to Notification; add pirep notifications

* Styling
This commit is contained in:
Nabeel S
2019-08-30 15:59:17 -04:00
committed by GitHub
parent b213f2bb4c
commit 7ace8bccd6
50 changed files with 1703 additions and 214 deletions

View File

@@ -27,6 +27,10 @@ class Kernel extends ConsoleKernel
$schedule->command(Weekly::class)->weeklyOn(0);
$schedule->command(Monthly::class)->monthlyOn(1);
$schedule->command(Hourly::class)->hourly();
// When spatie-backups runs
$schedule->command('backup:clean')->daily()->at('01:00');
$schedule->command('backup:run')->daily()->at('02:00');
}
/**

View File

@@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateNotificationsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('notifications', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('type');
$table->morphs('notifiable');
$table->text('data');
$table->timestamp('read_at')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('notifications');
}
}

View File

@@ -11,7 +11,7 @@
value: ''
options: ''
type: text
description: 'Email where notices, etc are sent'
description: 'Email where system notices, etc are sent'
- key: general.check_prerelease_version
name: 'Pre-release versions in version check'
group: general

View File

@@ -3,12 +3,17 @@
namespace App\Listeners;
use App\Contracts\Listener;
use App\Events\PirepAccepted;
use App\Events\PirepFiled;
use App\Events\PirepRejected;
use App\Events\UserRegistered;
use App\Events\UserStateChanged;
use App\Models\Enums\UserState;
use App\Models\User;
use App\Notifications\PirepSubmitted;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Facades\Mail;
use Log;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Notification;
/**
* Handle sending emails on different events
@@ -20,44 +25,22 @@ class NotificationEvents extends Listener
*/
public function subscribe(Dispatcher $events): void
{
$events->listen(
\App\Events\UserRegistered::class,
'App\Listeners\NotificationEvents@onUserRegister'
);
$events->listen(
\App\Events\UserStateChanged::class,
'App\Listeners\NotificationEvents@onUserStateChange'
);
$events->listen(UserRegistered::class, 'App\Listeners\NotificationEvents@onUserRegister');
$events->listen(UserStateChanged::class, 'App\Listeners\NotificationEvents@onUserStateChange');
$events->listen(PirepFiled::class, 'App\Listeners\NotificationEvents@onPirepFile');
$events->listen(PirepAccepted::class, 'App\Listeners\NotificationEvents@onPirepAccepted');
$events->listen(PirepRejected::class, 'App\Listeners\NotificationEvents@onPirepRejected');
}
/**
* @return bool
*/
protected function mailerActive(): bool
{
if (empty(config('mail.host'))) {
Log::info('No mail host specified!');
return false;
}
return true;
}
/**
* @param $to
* @param $email
* Send a notification to all of the admins
*
* @return mixed
* @param \Illuminate\Notifications\Notification $notification
*/
protected function sendEmail($to, $email)
protected function notifyAdmins($notification)
{
try {
return Mail::to($to)->send($email);
} catch (\Exception $e) {
Log::error('Error sending email!');
Log::error($e);
}
$admin_users = User::whereRoleIs('admin')->get();
Notification::send($admin_users, $notification);
}
/**
@@ -67,32 +50,24 @@ class NotificationEvents extends Listener
*/
public function onUserRegister(UserRegistered $event): void
{
Log::info('onUserRegister: '
Log::info('NotificationEvents::onUserRegister: '
.$event->user->ident.' is '
.UserState::label($event->user->state)
.', sending active email');
if (!$this->mailerActive()) {
return;
}
/*
* Send all of the admins a notification that a new user registered
*/
$this->notifyAdmins(new \App\Notifications\Admin\UserRegistered($event->user));
// First send the admin a notification
$admin_email = setting('general.admin_email');
Log::info('Sending admin notification email to "'.$admin_email.'"');
if (!empty($admin_email)) {
$email = new \App\Mail\Admin\UserRegistered($event->user);
$this->sendEmail($admin_email, $email);
}
// Then notify the user
/*
* Send the user a confirmation email
*/
if ($event->user->state === UserState::ACTIVE) {
$email = new \App\Mail\UserRegistered($event->user);
$event->user->notify(new \App\Notifications\UserRegistered($event->user));
} elseif ($event->user->state === UserState::PENDING) {
$email = new \App\Mail\UserPending($event->user);
$event->user->notify(new \App\Notifications\UserPending($event->user));
}
$this->sendEmail($event->user->email, $email);
}
/**
@@ -102,23 +77,49 @@ class NotificationEvents extends Listener
*/
public function onUserStateChange(UserStateChanged $event): void
{
if (!$this->mailerActive()) {
return;
}
Log::info('NotificationEvents::onUserStateChange: New user state='.$event->user->state);
if ($event->old_state === UserState::PENDING) {
if ($event->user->state === UserState::ACTIVE) {
$email = new \App\Mail\UserRegistered(
$event->user,
'Your registration has been accepted!'
);
$event->user->notify(new \App\Notifications\UserRegistered($event->user));
} elseif ($event->user->state === UserState::REJECTED) {
$email = new \App\Mail\UserRejected($event->user);
$event->user->notify(new \App\Notifications\UserRejected($event->user));
}
$this->sendEmail($event->user->email, $email);
} // TODO: Other state transitions
elseif ($event->old_state === UserState::ACTIVE) {
} elseif ($event->old_state === UserState::ACTIVE) {
Log::info('User state change from active to ??');
}
}
/**
* Notify the admins that a new PIREP has been filed
*
* @param \App\Events\PirepFiled $event
*/
public function onPirepFile(PirepFiled $event): void
{
Log::info('NotificationEvents::onPirepFile: '.$event->pirep->id.' filed ');
$this->notifyAdmins(new PirepSubmitted($event->pirep));
}
/**
* Notify the user that their PIREP has been accepted
*
* @param \App\Events\PirepAccepted $event
*/
public function onPirepAccepted(PirepAccepted $event): void
{
Log::info('NotificationEvents::onPirepAccepted: '.$event->pirep->id.' accepted');
$event->pirep->user->notify(new \App\Notifications\PirepAccepted($event->pirep));
}
/**
* Notify the user that their PIREP has been accepted
*
* @param \App\Events\PirepRejected $event
*/
public function onPirepRejected(PirepRejected $event): void
{
Log::info('NotificationEvents::onPirepRejected: '.$event->pirep->id.' rejected');
$event->pirep->user->notify(new \App\Notifications\PirepRejected($event->pirep));
}
}

View File

@@ -1,29 +0,0 @@
<?php
namespace App\Mail\Admin;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class UserRegistered extends Mailable
{
use Queueable, SerializesModels;
public $subject;
public $user;
public function __construct(User $user, $subject = null)
{
$this->subject = $subject ?: 'A new user registered';
$this->user = $user;
}
public function build()
{
return $this
->markdown('emails.admin.registered')
->subject($this->subject)
->with(['user' => $this->user]);
}
}

View File

@@ -1,30 +0,0 @@
<?php
namespace App\Mail;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class NewLoginDetails extends Mailable
{
use Queueable, SerializesModels;
public $subject;
public $user;
public $newpw;
public function __construct(User $user, $newpw = null, $subject = null)
{
$this->subject = $subject ?: 'New Login Details';
$this->newpw = $newpw ?: 'N/A';
$this->user = $user;
}
public function build()
{
return $this->markdown('emails.user.new_login_details')
->subject($this->subject)
->with(['user' => $this->user, 'newpw' => $this->newpw]);
}
}

View File

@@ -1,28 +0,0 @@
<?php
namespace App\Mail;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class UserPending extends Mailable
{
use Queueable, SerializesModels;
public $subject;
public $user;
public function __construct(User $user, $subject = null)
{
$this->subject = $subject ?: 'Your registration is pending!';
$this->user = $user;
}
public function build()
{
return $this->markdown('emails.user.pending')
->subject($this->subject)
->with(['user' => $this->user]);
}
}

View File

@@ -1,29 +0,0 @@
<?php
namespace App\Mail;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class UserRegistered extends Mailable
{
use Queueable, SerializesModels;
public $subject;
public $user;
public function __construct(User $user, $subject = null)
{
$this->subject = $subject ?: 'Welcome to '.config('app.name').'!';
$this->user = $user;
}
public function build()
{
return $this
->markdown('emails.user.registered')
->subject($this->subject)
->with(['user' => $this->user]);
}
}

View File

@@ -1,29 +0,0 @@
<?php
namespace App\Mail;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class UserRejected extends Mailable
{
use Queueable, SerializesModels;
public $subject;
public $user;
public function __construct(User $user, $subject = null)
{
$this->subject = $subject ?: 'Your registration has been denied';
$this->user = $user;
}
public function build()
{
return $this
->markdown('emails.user.rejected')
->subject($this->subject)
->with(['user' => $this->user]);
}
}

View File

@@ -0,0 +1,61 @@
<?php
namespace App\Notifications\Admin;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class UserRegistered extends Notification implements ShouldQueue
{
use Queueable;
private $user;
/**
* Create a new notification instance.
*
* @param \App\Models\User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage())
->from(config('mail.from.address'))
->markdown('mail.admin.user.registered')
->subject('A new user registered')
->with(['user' => $this->user]);
}
public function toArray($notifiable)
{
return [
'user_id' => $this->user->id,
];
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Notifications;
use Illuminate\Notifications\Notifiable;
class Backups
{
use Notifiable;
public function routeNotificationForMail()
{
return setting('general.admin_email');
}
public function routeNotificationForSlack()
{
return config('backup.notifications.slack.webhook_url');
}
public function getKey()
{
return 1;
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace App\Notifications;
use App\Models\Pirep;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class PirepAccepted extends Notification implements ShouldQueue
{
use Queueable;
private $pirep;
/**
* Create a new notification instance.
*
* @param \App\Models\Pirep $pirep
*/
public function __construct(Pirep $pirep)
{
$this->pirep = $pirep;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage())
->from(config('mail.from.address', 'no-reply@phpvms.net'))
->subject('PIREP Accepted!')
->markdown('mail.pirep.accepted', ['pirep' => $this->pirep]);
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
'pirep_id' => $this->pirep->id,
'user_id' => $this->pirep->user_id,
];
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace App\Notifications;
use App\Models\Pirep;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class PirepRejected extends Notification implements ShouldQueue
{
use Queueable;
private $pirep;
/**
* Create a new notification instance.
*
* @param \App\Models\Pirep $pirep
*/
public function __construct(Pirep $pirep)
{
$this->pirep = $pirep;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage())
->from(config('mail.from.address', 'no-reply@phpvms.net'))
->subject('PIREP Rejected!')
->markdown('mail.pirep.rejected', ['pirep' => $this->pirep]);
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
'pirep_id' => $this->pirep->id,
'user_id' => $this->pirep->user_id,
];
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace App\Notifications;
use App\Models\Pirep;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class PirepSubmitted extends Notification implements ShouldQueue
{
use Queueable;
private $pirep;
/**
* Create a new notification instance.
*
* @param \App\Models\Pirep $pirep
*/
public function __construct(Pirep $pirep)
{
$this->pirep = $pirep;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage())
->from(config('mail.from.address', 'no-reply@phpvms.net'))
->subject('New PIREP Submitted')
->markdown('mail.admin.pirep.submitted', ['pirep' => $this->pirep]);
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
'pirep_id' => $this->pirep->id,
'user_id' => $this->pirep->user_id,
];
}
}

View File

@@ -0,0 +1,65 @@
<?php
namespace App\Notifications;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class UserPending extends Notification implements ShouldQueue
{
use Queueable;
private $user;
/**
* @param \App\Models\User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage())
->from(config('mail.from.address', 'no-reply@phpvms.net'))
->subject('Your registration is pending')
->markdown('mail.user.pending', ['user' => $this->user]);
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
'user_id' => $this->user->id,
];
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace App\Notifications;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class UserRegistered extends Notification implements ShouldQueue
{
use Queueable;
private $user;
/**
* Create a new notification instance.
*
* @param \App\Models\User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage())
->from(config('mail.from.address', 'no-reply@phpvms.net'))
->subject('Welcome to '.config('app.name').'!')
->markdown('mail.user.registered', ['user' => $this->user]);
}
public function toArray($notifiable)
{
return [
'user_id' => $this->user->id,
];
}
}

View File

@@ -0,0 +1,65 @@
<?php
namespace App\Notifications;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class UserRejected extends Notification implements ShouldQueue
{
use Queueable;
private $user;
/**
* @param \App\Models\User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage())
->from(config('mail.from.address', 'no-reply@phpvms.net'))
->subject('Your registration has been denied')
->markdown('mail.user.rejected', ['user' => $this->user]);
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
'user_id' => $this->user->id,
];
}
}

View File

@@ -41,13 +41,14 @@
"nwidart/laravel-modules": "5.*",
"php-units-of-measure/php-units-of-measure": "2.1.*",
"pragmarx/version": "0.2.*",
"predis/predis": "^1.1",
"predis/predis": "1.1.*",
"prettus/l5-repository": "2.6.*",
"santigarcor/laratrust": "5.2.*",
"sebastiaanluca/laravel-helpers": "3.*",
"semver/semver": "^1.1",
"semver/semver": "1.1.*",
"spatie/laravel-backup": "6.3.*",
"spatie/laravel-pjax": "1.3.*",
"spatie/valuestore": "^1.2",
"spatie/valuestore": "1.2.*",
"symfony/polyfill-iconv": "^1.11",
"theiconic/php-ga-measurement-protocol": "2.7.*",
"tivie/php-os-detector": "1.1.*",

172
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "82d32405dcbe59c78e9063988de90952",
"content-hash": "64d2d6c24ad31032aeb7c4f488eef9a8",
"packages": [
{
"name": "akaunting/money",
@@ -4455,6 +4455,130 @@
"abandoned": true,
"time": "2016-05-28T13:26:32+00:00"
},
{
"name": "spatie/db-dumper",
"version": "2.14.3",
"source": {
"type": "git",
"url": "https://github.com/spatie/db-dumper.git",
"reference": "0ea605041373dce22cd0a387bca598050c7d033b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/db-dumper/zipball/0ea605041373dce22cd0a387bca598050c7d033b",
"reference": "0ea605041373dce22cd0a387bca598050c7d033b",
"shasum": ""
},
"require": {
"php": "^7.2",
"symfony/process": "^4.2"
},
"require-dev": {
"phpunit/phpunit": "^7.0|^8.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Spatie\\DbDumper\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Freek Van der Herten",
"role": "Developer",
"email": "freek@spatie.be",
"homepage": "https://spatie.be"
}
],
"description": "Dump databases",
"homepage": "https://github.com/spatie/db-dumper",
"keywords": [
"database",
"db-dumper",
"dump",
"mysqldump",
"spatie"
],
"time": "2019-08-21T16:39:54+00:00"
},
{
"name": "spatie/laravel-backup",
"version": "6.3.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-backup.git",
"reference": "cc37760ba75e9e07433b6314f37f438a91f7dea4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-backup/zipball/cc37760ba75e9e07433b6314f37f438a91f7dea4",
"reference": "cc37760ba75e9e07433b6314f37f438a91f7dea4",
"shasum": ""
},
"require": {
"illuminate/console": "~5.8.0",
"illuminate/contracts": "~5.8.0",
"illuminate/events": "~5.8.0",
"illuminate/filesystem": "~5.8.0",
"illuminate/notifications": "~5.8.0",
"illuminate/support": "~5.8.0",
"league/flysystem": "^1.0.49",
"php": "^7.2",
"spatie/db-dumper": "^2.12",
"spatie/temporary-directory": "^1.1",
"symfony/finder": "^4.2"
},
"require-dev": {
"laravel/slack-notification-channel": "^1.0",
"mockery/mockery": "^1.0",
"orchestra/testbench": "~3.8.0",
"phpunit/phpunit": "^8.0"
},
"suggest": {
"laravel/slack-notification-channel": "Required for sending notifications via Slack"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Spatie\\Backup\\BackupServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Spatie\\Backup\\": "src"
},
"files": [
"src/Helpers/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Freek Van der Herten",
"role": "Developer",
"email": "freek@spatie.be",
"homepage": "https://spatie.be"
}
],
"description": "A Laravel package to backup your application",
"homepage": "https://github.com/spatie/laravel-backup",
"keywords": [
"backup",
"database",
"laravel-backup",
"spatie"
],
"time": "2019-07-16T20:56:47+00:00"
},
{
"name": "spatie/laravel-pjax",
"version": "1.3.2",
@@ -4507,6 +4631,52 @@
],
"time": "2018-02-06T13:21:42+00:00"
},
{
"name": "spatie/temporary-directory",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/temporary-directory.git",
"reference": "3e51af9a8361f85cffc1fb2c52135f3e064758cc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/temporary-directory/zipball/3e51af9a8361f85cffc1fb2c52135f3e064758cc",
"reference": "3e51af9a8361f85cffc1fb2c52135f3e064758cc",
"shasum": ""
},
"require": {
"php": "^7.2"
},
"require-dev": {
"phpunit/phpunit": "^8.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Spatie\\TemporaryDirectory\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Alex Vanderbist",
"role": "Developer",
"email": "alex@spatie.be",
"homepage": "https://spatie.be"
}
],
"description": "Easily create, use and destroy temporary directories",
"homepage": "https://github.com/spatie/temporary-directory",
"keywords": [
"spatie",
"temporary-directory"
],
"time": "2019-08-28T06:53:51+00:00"
},
{
"name": "spatie/valuestore",
"version": "1.2.3",

204
config/backup.php Normal file
View File

@@ -0,0 +1,204 @@
<?php
use App\Notifications\Backups;
use Spatie\Backup\Notifications\Notifications\BackupHasFailed;
use Spatie\Backup\Notifications\Notifications\BackupWasSuccessful;
use Spatie\Backup\Notifications\Notifications\CleanupHasFailed;
use Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful;
use Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound;
use Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound;
use Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy;
use Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumAgeInDays;
use Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumStorageInMegabytes;
return [
'backup' => [
'name' => config('app.name', 'phpvms-backup'),
'source' => [
'files' => [
'include' => [
base_path(),
],
'exclude' => [
base_path('vendor'),
base_path('node_modules'),
],
'follow_links' => false,
],
/*
* The names of the connections to the databases that should be backed up
* MySQL, PostgreSQL, SQLite and Mongo databases are supported.
*
* The content of the database dump may be customized for each connection
* by adding a 'dump' key to the connection settings in config/database.php.
* E.g.
* 'mysql' => [
* ...
* 'dump' => [
* 'excludeTables' => [
* 'table_to_exclude_from_backup',
* 'another_table_to_exclude'
* ]
* ],
* ],
*
* If you are using only InnoDB tables on a MySQL server, you can
* also supply the useSingleTransaction option to avoid table locking.
*
* E.g.
* 'mysql' => [
* ...
* 'dump' => [
* 'useSingleTransaction' => true,
* ],
* ],
*
* For a complete list of available customization options, see https://github.com/spatie/db-dumper
*/
'databases' => [
'mysql',
],
],
/*
* The database dump can be compressed to decrease diskspace usage.
*
* Out of the box Laravel-backup supplies
* Spatie\DbDumper\Compressors\GzipCompressor::class.
*
* You can also create custom compressor. More info on that here:
* https://github.com/spatie/db-dumper#using-compression
*
* If you do not want any compressor at all, set it to null.
*/
'database_dump_compressor' => null,
'destination' => [
/*
* The filename prefix used for the backup zip file.
*/
'filename_prefix' => '',
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'local',
],
],
/*
* The directory where the temporary files will be stored.
*/
'temporary_directory' => storage_path('app/backup-temp'),
],
/*
* You can get notified when specific events occur. Out of the box you can use 'mail' and 'slack'.
* For Slack you need to install guzzlehttp/guzzle and laravel/slack-notification-channel.
*
* You can also use your own notification classes, just make sure the class is named after one of
* the `Spatie\Backup\Events` classes.
*/
'notifications' => [
'notifications' => [
BackupHasFailed::class => ['mail'],
UnhealthyBackupWasFound::class => ['mail'],
CleanupHasFailed::class => ['mail'],
BackupWasSuccessful::class => ['mail'],
HealthyBackupWasFound::class => ['mail'],
CleanupWasSuccessful::class => ['mail'],
],
/*
* Here you can specify the notifiable to which the notifications should be sent. The default
* notifiable will use the variables specified in this config file.
*/
'notifiable' => Backups::class,
'slack' => [
'webhook_url' => '',
/*
* If this is set to null the default channel of the webhook will be used.
*/
'channel' => null,
'username' => null,
'icon' => null,
],
],
/*
* Here you can specify which backups should be monitored.
* If a backup does not meet the specified requirements the
* UnHealthyBackupWasFound event will be fired.
*/
'monitor_backups' => [
[
'name' => config(config('app.name'), 'phpvms-backup'),
'disks' => ['local'],
'health_checks' => [
MaximumAgeInDays::class => 1,
MaximumStorageInMegabytes::class => 5000,
],
],
/*
[
'name' => 'name of the second app',
'disks' => ['local', 's3'],
'health_checks' => [
\Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumAgeInDays::class => 1,
\Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumStorageInMegabytes::class => 5000,
],
],
*/
],
'cleanup' => [
/*
* The strategy that will be used to cleanup old backups. The default strategy
* will keep all backups for a certain amount of days. After that period only
* a daily backup will be kept. After that period only weekly backups will
* be kept and so on.
*
* No matter how you configure it the default strategy will never
* delete the newest backup.
*/
'strategy' => DefaultStrategy::class,
'default_strategy' => [
/*
* The number of days for which backups must be kept.
*/
'keep_all_backups_for_days' => 7,
/*
* The number of days for which daily backups must be kept.
*/
'keep_daily_backups_for_days' => 7,
/*
* The number of weeks for which one weekly backup must be kept.
*/
'keep_weekly_backups_for_weeks' => 4,
/*
* The number of months for which one monthly backup must be kept.
*/
'keep_monthly_backups_for_months' => 4,
/*
* The number of years for which one yearly backup must be kept.
*/
'keep_yearly_backups_for_years' => 2,
/*
* After cleaning up the backups remove the oldest backup until
* this amount of megabytes has been reached.
*/
'delete_oldest_backups_when_using_more_megabytes_than' => 5000,
],
],
];

View File

@@ -22,6 +22,9 @@ return [
PDO::ATTR_EMULATE_PREPARES => env('DB_EMULATE_PREPARES', false),
//PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
],
'dump' => [
'timeout' => 60 * 5, // 5 minute timeout
],
],
'sqlite' => [
'driver' => 'sqlite',

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'رسالة استثناء: :message',
'exception_trace' => 'تتبع الإستثناء: :trace',
'exception_message_title' => 'رسالة استثناء',
'exception_trace_title' => 'تتبع الإستثناء',
'backup_failed_subject' => 'أخفق النسخ الاحتياطي لل :application_name',
'backup_failed_body' => 'مهم: حدث خطأ أثناء النسخ الاحتياطي :application_name',
'backup_successful_subject' => 'نسخ احتياطي جديد ناجح ل :application_name',
'backup_successful_subject_title' => 'نجاح النسخ الاحتياطي الجديد!',
'backup_successful_body' => 'أخبار عظيمة، نسخة احتياطية جديدة ل :application_name تم إنشاؤها بنجاح على القرص المسمى :disk_name.',
'cleanup_failed_subject' => 'فشل تنظيف النسخ الاحتياطي للتطبيق :application_name .',
'cleanup_failed_body' => 'حدث خطأ أثناء تنظيف النسخ الاحتياطية ل :application_name',
'cleanup_successful_subject' => 'تنظيف النسخ الاحتياطية ل :application_name تمت بنجاح',
'cleanup_successful_subject_title' => 'تنظيف النسخ الاحتياطية تم بنجاح!',
'cleanup_successful_body' => 'تنظيف النسخ الاحتياطية ل :application_name على القرص المسمى :disk_name تم بنجاح.',
'healthy_backup_found_subject' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name صحية',
'healthy_backup_found_subject_title' => 'النسخ الاحتياطية ل :application_name صحية',
'healthy_backup_found_body' => 'تعتبر النسخ الاحتياطية ل :application_name صحية. عمل جيد!',
'unhealthy_backup_found_subject' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية',
'unhealthy_backup_found_subject_title' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية. :problem',
'unhealthy_backup_found_body' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name غير صحية.',
'unhealthy_backup_found_not_reachable' => 'لا يمكن الوصول إلى وجهة النسخ الاحتياطي. :error',
'unhealthy_backup_found_empty' => 'لا توجد نسخ احتياطية لهذا التطبيق على الإطلاق.',
'unhealthy_backup_found_old' => 'تم إنشاء أحدث النسخ الاحتياطية في :date وتعتبر قديمة جدا.',
'unhealthy_backup_found_unknown' => 'عذرا، لا يمكن تحديد سبب دقيق.',
'unhealthy_backup_found_full' => 'النسخ الاحتياطية تستخدم الكثير من التخزين. الاستخدام الحالي هو :disk_usage وهو أعلى من الحد المسموح به من :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Zpráva výjimky: :message',
'exception_trace' => 'Stopa výjimky: :trace',
'exception_message_title' => 'Zpráva výjimky',
'exception_trace_title' => 'Stopa výjimky',
'backup_failed_subject' => 'Záloha :application_name neuspěla',
'backup_failed_body' => 'Důležité: Při záloze :application_name se vyskytla chyba',
'backup_successful_subject' => 'Úspěšná nová záloha :application_name',
'backup_successful_subject_title' => 'Úspěšná nová záloha!',
'backup_successful_body' => 'Dobrá zpráva, na disku jménem :disk_name byla úspěšně vytvořena nová záloha :application_name.',
'cleanup_failed_subject' => 'Vyčištění záloh :application_name neuspělo.',
'cleanup_failed_body' => 'Při vyčištění záloh :application_name se vyskytla chyba',
'cleanup_successful_subject' => 'Vyčištění záloh :application_name úspěšné',
'cleanup_successful_subject_title' => 'Vyčištění záloh bylo úspěšné!',
'cleanup_successful_body' => 'Vyčištění záloh :application_name na disku jménem :disk_name bylo úspěšné.',
'healthy_backup_found_subject' => 'Zálohy pro :application_name na disku :disk_name jsou zdravé',
'healthy_backup_found_subject_title' => 'Zálohy pro :application_name jsou zdravé',
'healthy_backup_found_body' => 'Zálohy pro :application_name jsou považovány za zdravé. Dobrá práce!',
'unhealthy_backup_found_subject' => 'Důležité: Zálohy pro :application_name jsou nezdravé',
'unhealthy_backup_found_subject_title' => 'Důležité: Zálohy pro :application_name jsou nezdravé. :problem',
'unhealthy_backup_found_body' => 'Zálohy pro :application_name na disku :disk_name Jsou nezdravé.',
'unhealthy_backup_found_not_reachable' => 'Nelze se dostat k cíli zálohy. :error',
'unhealthy_backup_found_empty' => 'Tato aplikace nemá vůbec žádné zálohy.',
'unhealthy_backup_found_old' => 'Poslední záloha vytvořená dne :date je považována za příliš starou.',
'unhealthy_backup_found_unknown' => 'Omlouváme se, nemůžeme určit přesný důvod.',
'unhealthy_backup_found_full' => 'Zálohy zabírají příliš mnoho místa na disku. Aktuální využití disku je :disk_usage, což je vyšší než povolený limit :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Fejlbesked: :message',
'exception_trace' => 'Fejl trace: :trace',
'exception_message_title' => 'Fejlbesked',
'exception_trace_title' => 'Fejl trace',
'backup_failed_subject' => 'Backup af :application_name fejlede',
'backup_failed_body' => 'Vigtigt: Der skete en fejl under backup af :application_name',
'backup_successful_subject' => 'Ny backup af :application_name oprettet',
'backup_successful_subject_title' => 'Ny backup!',
'backup_successful_body' => 'Gode nyheder - der blev oprettet en ny backup af :application_name på disken :disk_name.',
'cleanup_failed_subject' => 'Oprydning af backups for :application_name fejlede.',
'cleanup_failed_body' => 'Der skete en fejl under oprydning af backups for :application_name',
'cleanup_successful_subject' => 'Oprydning af backups for :application_name gennemført',
'cleanup_successful_subject_title' => 'Backup oprydning gennemført!',
'cleanup_successful_body' => 'Oprydningen af backups for :application_name på disken :disk_name er gennemført.',
'healthy_backup_found_subject' => 'Alle backups for :application_name på disken :disk_name er OK',
'healthy_backup_found_subject_title' => 'Alle backups for :application_name er OK',
'healthy_backup_found_body' => 'Alle backups for :application_name er ok. Godt gået!',
'unhealthy_backup_found_subject' => 'Vigtigt: Backups for :application_name fejlbehæftede',
'unhealthy_backup_found_subject_title' => 'Vigtigt: Backups for :application_name er fejlbehæftede. :problem',
'unhealthy_backup_found_body' => 'Backups for :application_name på disken :disk_name er fejlbehæftede.',
'unhealthy_backup_found_not_reachable' => 'Backup destinationen kunne ikke findes. :error',
'unhealthy_backup_found_empty' => 'Denne applikation har ingen backups overhovedet.',
'unhealthy_backup_found_old' => 'Den seneste backup fra :date er for gammel.',
'unhealthy_backup_found_unknown' => 'Beklager, en præcis årsag kunne ikke findes.',
'unhealthy_backup_found_full' => 'Backups bruger for meget plads. Nuværende disk forbrug er :disk_usage, hvilket er mere end den tilladte grænse på :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Fehlermeldung: :message',
'exception_trace' => 'Fehlerverfolgung: :trace',
'exception_message_title' => 'Fehlermeldung',
'exception_trace_title' => 'Fehlerverfolgung',
'backup_failed_subject' => 'Backup von :application_name konnte nicht erstellt werden',
'backup_failed_body' => 'Wichtig: Beim Backup von :application_name ist ein Fehler aufgetreten',
'backup_successful_subject' => 'Erfolgreiches neues Backup von :application_name',
'backup_successful_subject_title' => 'Erfolgreiches neues Backup!',
'backup_successful_body' => 'Gute Nachrichten, ein neues Backup von :application_name wurde erfolgreich erstellt und in :disk_name gepeichert.',
'cleanup_failed_subject' => 'Aufräumen der Backups von :application_name schlug fehl.',
'cleanup_failed_body' => 'Beim aufräumen der Backups von :application_name ist ein Fehler aufgetreten',
'cleanup_successful_subject' => 'Aufräumen der Backups von :application_name backups erfolgreich',
'cleanup_successful_subject_title' => 'Aufräumen der Backups erfolgreich!',
'cleanup_successful_body' => 'Aufräumen der Backups von :application_name in :disk_name war erfolgreich.',
'healthy_backup_found_subject' => 'Die Backups von :application_name in :disk_name sind gesund',
'healthy_backup_found_subject_title' => 'Die Backups von :application_name sind Gesund',
'healthy_backup_found_body' => 'Die Backups von :application_name wurden als gesund eingestuft. Gute Arbeit!',
'unhealthy_backup_found_subject' => 'Wichtig: Die Backups für :application_name sind nicht gesund',
'unhealthy_backup_found_subject_title' => 'Wichtig: Die Backups für :application_name sind ungesund. :problem',
'unhealthy_backup_found_body' => 'Die Backups für :application_name in :disk_name sind ungesund.',
'unhealthy_backup_found_not_reachable' => 'Das Backup Ziel konnte nicht erreicht werden. :error',
'unhealthy_backup_found_empty' => 'Es gibt für die Anwendung noch gar keine Backups.',
'unhealthy_backup_found_old' => 'Das letzte Backup am :date ist zu lange her.',
'unhealthy_backup_found_unknown' => 'Sorry, ein genauer Grund konnte nicht gefunden werden.',
'unhealthy_backup_found_full' => 'Die Backups verbrauchen zu viel Platz. Aktuell wird :disk_usage belegt, dass ist höher als das erlaubte Limit von :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Exception message: :message',
'exception_trace' => 'Exception trace: :trace',
'exception_message_title' => 'Exception message',
'exception_trace_title' => 'Exception trace',
'backup_failed_subject' => 'Failed backup of :application_name',
'backup_failed_body' => 'Important: An error occurred while backing up :application_name',
'backup_successful_subject' => 'Successful new backup of :application_name',
'backup_successful_subject_title' => 'Successful new backup!',
'backup_successful_body' => 'Great news, a new backup of :application_name was successfully created on the disk named :disk_name.',
'cleanup_failed_subject' => 'Cleaning up the backups of :application_name failed.',
'cleanup_failed_body' => 'An error occurred while cleaning up the backups of :application_name',
'cleanup_successful_subject' => 'Clean up of :application_name backups successful',
'cleanup_successful_subject_title' => 'Clean up of backups successful!',
'cleanup_successful_body' => 'The clean up of the :application_name backups on the disk named :disk_name was successful.',
'healthy_backup_found_subject' => 'The backups for :application_name on disk :disk_name are healthy',
'healthy_backup_found_subject_title' => 'The backups for :application_name are healthy',
'healthy_backup_found_body' => 'The backups for :application_name are considered healthy. Good job!',
'unhealthy_backup_found_subject' => 'Important: The backups for :application_name are unhealthy',
'unhealthy_backup_found_subject_title' => 'Important: The backups for :application_name are unhealthy. :problem',
'unhealthy_backup_found_body' => 'The backups for :application_name on disk :disk_name are unhealthy.',
'unhealthy_backup_found_not_reachable' => 'The backup destination cannot be reached. :error',
'unhealthy_backup_found_empty' => 'There are no backups of this application at all.',
'unhealthy_backup_found_old' => 'The latest backup made on :date is considered too old.',
'unhealthy_backup_found_unknown' => 'Sorry, an exact reason cannot be determined.',
'unhealthy_backup_found_full' => 'The backups are using too much storage. Current usage is :disk_usage which is higher than the allowed limit of :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Mensaje de la excepción: :message',
'exception_trace' => 'Traza de la excepción: :trace',
'exception_message_title' => 'Mensaje de la excepción',
'exception_trace_title' => 'Traza de la excepción',
'backup_failed_subject' => 'Copia de seguridad de :application_name fallida',
'backup_failed_body' => 'Importante: Ocurrió un error al realizar la copia de seguridad de :application_name',
'backup_successful_subject' => 'Se completó con éxito la copia de seguridad de :application_name',
'backup_successful_subject_title' => '¡Nueva copia de seguridad creada con éxito!',
'backup_successful_body' => 'Buenas noticias, una nueva copia de seguridad de :application_name fue creada con éxito en el disco llamado :disk_name.',
'cleanup_failed_subject' => 'La limpieza de copias de seguridad de :application_name falló.',
'cleanup_failed_body' => 'Ocurrió un error mientras se realizaba la limpieza de copias de seguridad de :application_name',
'cleanup_successful_subject' => 'La limpieza de copias de seguridad de :application_name se completó con éxito',
'cleanup_successful_subject_title' => '!Limpieza de copias de seguridad completada con éxito!',
'cleanup_successful_body' => 'La limpieza de copias de seguridad de :application_name en el disco llamado :disk_name se completo con éxito.',
'healthy_backup_found_subject' => 'Las copias de seguridad de :application_name en el disco :disk_name están en buen estado',
'healthy_backup_found_subject_title' => 'Las copias de seguridad de :application_name están en buen estado',
'healthy_backup_found_body' => 'Las copias de seguridad de :application_name se consideran en buen estado. ¡Buen trabajo!',
'unhealthy_backup_found_subject' => 'Importante: Las copias de seguridad de :application_name están en mal estado',
'unhealthy_backup_found_subject_title' => 'Importante: Las copias de seguridad de :application_name están en mal estado. :problem',
'unhealthy_backup_found_body' => 'Las copias de seguridad de :application_name en el disco :disk_name están en mal estado.',
'unhealthy_backup_found_not_reachable' => 'No se puede acceder al destino de la copia de seguridad. :error',
'unhealthy_backup_found_empty' => 'No existe ninguna copia de seguridad de esta aplicación.',
'unhealthy_backup_found_old' => 'La última copia de seguriad hecha en :date es demasiado antigua.',
'unhealthy_backup_found_unknown' => 'Lo siento, no es posible determinar la razón exacta.',
'unhealthy_backup_found_full' => 'Las copias de seguridad están ocupando demasiado espacio. El espacio utilizado actualmente es :disk_usage el cual es mayor que el límite permitido de :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'پیغام خطا: :message',
'exception_trace' => 'جزییات خطا: :trace',
'exception_message_title' => 'پیغام خطا',
'exception_trace_title' => 'جزییات خطا',
'backup_failed_subject' => 'پشتیبان‌گیری :application_name با خطا مواجه شد.',
'backup_failed_body' => 'پیغام مهم: هنگام پشتیبان‌گیری از :application_name خطایی رخ داده است. ',
'backup_successful_subject' => 'نسخه پشتیبان جدید :application_name با موفقیت ساخته شد.',
'backup_successful_subject_title' => 'پشتیبان‌گیری موفق!',
'backup_successful_body' => 'خبر خوب, به تازگی نسخه پشتیبان :application_name بر روی دیسک :disk_name با موفقیت ساخته شد. ',
'cleanup_failed_subject' => 'پاک‌‌سازی نسخه پشتیبان :application_name انجام نشد.',
'cleanup_failed_body' => 'هنگام پاک‌سازی نسخه پشتیبان :application_name خطایی رخ داده است.',
'cleanup_successful_subject' => 'پاک‌سازی نسخه پشتیبان :application_name با موفقیت انجام شد.',
'cleanup_successful_subject_title' => 'پاک‌سازی نسخه پشتیبان!',
'cleanup_successful_body' => 'پاک‌سازی نسخه پشتیبان :application_name بر روی دیسک :disk_name با موفقیت انجام شد.',
'healthy_backup_found_subject' => 'نسخه پشتیبان :application_name بر روی دیسک :disk_name سالم بود.',
'healthy_backup_found_subject_title' => 'نسخه پشتیبان :application_name سالم بود.',
'healthy_backup_found_body' => 'نسخه پشتیبان :application_name به نظر سالم میاد. دمت گرم!',
'unhealthy_backup_found_subject' => 'خبر مهم: نسخه پشتیبان :application_name سالم نبود.',
'unhealthy_backup_found_subject_title' => 'خبر مهم: نسخه پشتیبان :application_name سالم نبود. :problem',
'unhealthy_backup_found_body' => 'نسخه پشتیبان :application_name بر روی دیسک :disk_name سالم نبود.',
'unhealthy_backup_found_not_reachable' => 'مقصد پشتیبان‌گیری در دسترس نبود. :error',
'unhealthy_backup_found_empty' => 'برای این برنامه هیچ نسخه پشتیبانی وجود ندارد.',
'unhealthy_backup_found_old' => 'آخرین نسخه پشتیبان برای تاریخ :date است. که به نظر خیلی قدیمی میاد. ',
'unhealthy_backup_found_unknown' => 'متاسفانه دلیل دقیق مشخص نشده است.',
'unhealthy_backup_found_full' => 'نسخه‌های پشتیبانی که تهیه کرده اید حجم زیادی اشغال کرده اند. میزان دیسک استفاده شده :disk_usage است که از میزان مجاز :disk_limit فراتر رفته است. ',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Message de l\'exception : :message',
'exception_trace' => 'Trace de l\'exception : :trace',
'exception_message_title' => 'Message de l\'exception',
'exception_trace_title' => 'Trace de l\'exception',
'backup_failed_subject' => 'Échec de la sauvegarde de :application_name',
'backup_failed_body' => 'Important : Une erreur est survenue lors de la sauvegarde de :application_name',
'backup_successful_subject' => 'Succès de la sauvegarde de :application_name',
'backup_successful_subject_title' => 'Sauvegarde créée avec succès !',
'backup_successful_body' => 'Bonne nouvelle, une nouvelle sauvegarde de :application_name a été créée avec succès sur le disque nommé :disk_name.',
'cleanup_failed_subject' => 'Le nettoyage des sauvegardes de :application_name a echoué.',
'cleanup_failed_body' => 'Une erreur est survenue lors du nettoyage des sauvegardes de :application_name',
'cleanup_successful_subject' => 'Succès du nettoyage des sauvegardes de :application_name',
'cleanup_successful_subject_title' => 'Sauvegardes nettoyées avec succès !',
'cleanup_successful_body' => 'Le nettoyage des sauvegardes de :application_name sur le disque nommé :disk_name a été effectué avec succès.',
'healthy_backup_found_subject' => 'Les sauvegardes pour :application_name sur le disque :disk_name sont saines',
'healthy_backup_found_subject_title' => 'Les sauvegardes pour :application_name sont saines',
'healthy_backup_found_body' => 'Les sauvegardes pour :application_name sont considérées saines. Bon travail !',
'unhealthy_backup_found_subject' => 'Important : Les sauvegardes pour :application_name sont corrompues',
'unhealthy_backup_found_subject_title' => 'Important : Les sauvegardes pour :application_name sont corrompues. :problem',
'unhealthy_backup_found_body' => 'Les sauvegardes pour :application_name sur le disque :disk_name sont corrompues.',
'unhealthy_backup_found_not_reachable' => 'La destination de la sauvegarde n\'est pas accessible. :error',
'unhealthy_backup_found_empty' => 'Il n\'y a aucune sauvegarde pour cette application.',
'unhealthy_backup_found_old' => 'La dernière sauvegarde du :date est considérée trop vieille.',
'unhealthy_backup_found_unknown' => 'Désolé, une raison exacte ne peut être déterminée.',
'unhealthy_backup_found_full' => 'Les sauvegardes utilisent trop d\'espace disque. L\'utilisation actuelle est de :disk_usage alors que la limite autorisée est de :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'गलती संदेश: :message',
'exception_trace' => 'गलती निशान: :trace',
'exception_message_title' => 'गलती संदेश',
'exception_trace_title' => 'गलती निशान',
'backup_failed_subject' => ':application_name का बैकअप असफल रहा',
'backup_failed_body' => 'जरूरी सुचना: :application_name का बैकअप लेते समय असफल रहे',
'backup_successful_subject' => ':application_name का बैकअप सफल रहा',
'backup_successful_subject_title' => 'बैकअप सफल रहा!',
'backup_successful_body' => 'खुशखबरी, :application_name का बैकअप :disk_name पर संग्रहित करने मे सफल रहे.',
'cleanup_failed_subject' => ':application_name के बैकअप की सफाई असफल रही.',
'cleanup_failed_body' => ':application_name के बैकअप की सफाई करते समय कुछ बाधा आयी है.',
'cleanup_successful_subject' => ':application_name के बैकअप की सफाई सफल रही',
'cleanup_successful_subject_title' => 'बैकअप की सफाई सफल रही!',
'cleanup_successful_body' => ':application_name का बैकअप जो :disk_name नाम की डिस्क पर संग्रहित है, उसकी सफाई सफल रही.',
'healthy_backup_found_subject' => ':disk_name नाम की डिस्क पर संग्रहित :application_name के बैकअप स्वस्थ है',
'healthy_backup_found_subject_title' => ':application_name के सभी बैकअप स्वस्थ है',
'healthy_backup_found_body' => 'बहुत बढ़िया! :application_name के सभी बैकअप स्वस्थ है.',
'unhealthy_backup_found_subject' => 'जरूरी सुचना : :application_name के बैकअप अस्वस्थ है',
'unhealthy_backup_found_subject_title' => 'जरूरी सुचना : :application_name के बैकअप :problem के बजेसे अस्वस्थ है',
'unhealthy_backup_found_body' => ':disk_name नाम की डिस्क पर संग्रहित :application_name के बैकअप अस्वस्थ है',
'unhealthy_backup_found_not_reachable' => ':error के बजेसे बैकअप की मंजिल तक पोहोच नहीं सकते.',
'unhealthy_backup_found_empty' => 'इस एप्लीकेशन का कोई भी बैकअप नहीं है.',
'unhealthy_backup_found_old' => 'हालहीमें :date को लिया हुआ बैकअप बहुत पुराना है.',
'unhealthy_backup_found_unknown' => 'माफ़ कीजिये, सही कारण निर्धारित नहीं कर सकते.',
'unhealthy_backup_found_full' => 'सभी बैकअप बहुत ज्यादा जगह का उपयोग कर रहे है. फ़िलहाल सभी बैकअप :disk_usage जगह का उपयोग कर रहे है, जो की :disk_limit अनुमति सीमा से अधिक का है.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Pesan pengecualian: :message',
'exception_trace' => 'Jejak pengecualian: :trace',
'exception_message_title' => 'Pesan pengecualian',
'exception_trace_title' => 'Jejak pengecualian',
'backup_failed_subject' => 'Gagal backup :application_name',
'backup_failed_body' => 'Penting: Sebuah error terjadi ketika membackup :application_name',
'backup_successful_subject' => 'Backup baru sukses dari :application_name',
'backup_successful_subject_title' => 'Backup baru sukses!',
'backup_successful_body' => 'Kabar baik, sebuah backup baru dari :application_name sukses dibuat pada disk bernama :disk_name.',
'cleanup_failed_subject' => 'Membersihkan backup dari :application_name yang gagal.',
'cleanup_failed_body' => 'Sebuah error teradi ketika membersihkan backup dari :application_name',
'cleanup_successful_subject' => 'Sukses membersihkan backup :application_name',
'cleanup_successful_subject_title' => 'Sukses membersihkan backup!',
'cleanup_successful_body' => 'Pembersihan backup :application_name pada disk bernama :disk_name telah sukses.',
'healthy_backup_found_subject' => 'Backup untuk :application_name pada disk :disk_name sehat',
'healthy_backup_found_subject_title' => 'Backup untuk :application_name sehat',
'healthy_backup_found_body' => 'Backup untuk :application_name dipertimbangkan sehat. Kerja bagus!',
'unhealthy_backup_found_subject' => 'Penting: Backup untuk :application_name tidak sehat',
'unhealthy_backup_found_subject_title' => 'Penting: Backup untuk :application_name tidak sehat. :problem',
'unhealthy_backup_found_body' => 'Backup untuk :application_name pada disk :disk_name tidak sehat.',
'unhealthy_backup_found_not_reachable' => 'Tujuan backup tidak dapat terjangkau. :error',
'unhealthy_backup_found_empty' => 'Tidak ada backup pada aplikasi ini sama sekali.',
'unhealthy_backup_found_old' => 'Backup terakhir dibuat pada :date dimana dipertimbahkan sudah sangat lama.',
'unhealthy_backup_found_unknown' => 'Maaf, sebuah alasan persisnya tidak dapat ditentukan.',
'unhealthy_backup_found_full' => 'Backup menggunakan terlalu banyak kapasitas penyimpanan. Penggunaan terkini adalah :disk_usage dimana lebih besar dari batas yang diperbolehkan yaitu :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Messaggio dell\'eccezione: :message',
'exception_trace' => 'Traccia dell\'eccezione: :trace',
'exception_message_title' => 'Messaggio dell\'eccezione',
'exception_trace_title' => 'Traccia dell\'eccezione',
'backup_failed_subject' => 'Fallito il backup di :application_name',
'backup_failed_body' => 'Importante: Si è verificato un errore durante il backup di :application_name',
'backup_successful_subject' => 'Creato nuovo backup di :application_name',
'backup_successful_subject_title' => 'Nuovo backup creato!',
'backup_successful_body' => 'Grande notizia, un nuovo backup di :application_name è stato creato con successo sul disco :disk_name.',
'cleanup_failed_subject' => 'Pulizia dei backup di :application_name fallita.',
'cleanup_failed_body' => 'Si è verificato un errore durante la pulizia dei backup di :application_name',
'cleanup_successful_subject' => 'Pulizia dei backup di :application_name avvenuta con successo',
'cleanup_successful_subject_title' => 'Pulizia dei backup avvenuta con successo!',
'cleanup_successful_body' => 'La pulizia dei backup di :application_name sul disco :disk_name è avvenuta con successo.',
'healthy_backup_found_subject' => 'I backup per :application_name sul disco :disk_name sono sani',
'healthy_backup_found_subject_title' => 'I backup per :application_name sono sani',
'healthy_backup_found_body' => 'I backup per :application_name sono considerati sani. Bel Lavoro!',
'unhealthy_backup_found_subject' => 'Importante: i backup per :application_name sono corrotti',
'unhealthy_backup_found_subject_title' => 'Importante: i backup per :application_name sono corrotti. :problem',
'unhealthy_backup_found_body' => 'I backup per :application_name sul disco :disk_name sono corrotti.',
'unhealthy_backup_found_not_reachable' => 'Impossibile raggiungere la destinazione di backup. :error',
'unhealthy_backup_found_empty' => 'Non esiste alcun backup di questa applicazione.',
'unhealthy_backup_found_old' => 'L\'ultimo backup fatto il :date è considerato troppo vecchio.',
'unhealthy_backup_found_unknown' => 'Spiacenti, non è possibile determinare una ragione esatta.',
'unhealthy_backup_found_full' => 'I backup utilizzano troppa memoria. L\'utilizzo corrente è :disk_usage che è superiore al limite consentito di :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Fout bericht: :message',
'exception_trace' => 'Fout trace: :trace',
'exception_message_title' => 'Fout bericht',
'exception_trace_title' => 'Fout trace',
'backup_failed_subject' => 'Back-up van :application_name mislukt',
'backup_failed_body' => 'Belangrijk: Er ging iets fout tijdens het maken van een back-up van :application_name',
'backup_successful_subject' => 'Succesvolle nieuwe back-up van :application_name',
'backup_successful_subject_title' => 'Succesvolle nieuwe back-up!',
'backup_successful_body' => 'Goed nieuws, een nieuwe back-up van :application_name was succesvol aangemaakt op de schijf genaamd :disk_name.',
'cleanup_failed_subject' => 'Het opschonen van de back-ups van :application_name is mislukt.',
'cleanup_failed_body' => 'Er ging iets fout tijdens het opschonen van de back-ups van :application_name',
'cleanup_successful_subject' => 'Opschonen van :application_name back-ups was succesvol.',
'cleanup_successful_subject_title' => 'Opschonen van back-ups was succesvol!',
'cleanup_successful_body' => 'Het opschonen van de :application_name back-ups op de schijf genaamd :disk_name was succesvol.',
'healthy_backup_found_subject' => 'De back-ups voor :application_name op schijf :disk_name zijn gezond',
'healthy_backup_found_subject_title' => 'De back-ups voor :application_name zijn gezond',
'healthy_backup_found_body' => 'De back-ups voor :application_name worden als gezond beschouwd. Goed gedaan!',
'unhealthy_backup_found_subject' => 'Belangrijk: De back-ups voor :application_name zijn niet meer gezond',
'unhealthy_backup_found_subject_title' => 'Belangrijk: De back-ups voor :application_name zijn niet gezond. :problem',
'unhealthy_backup_found_body' => 'De back-ups voor :application_name op schijf :disk_name zijn niet gezond.',
'unhealthy_backup_found_not_reachable' => 'De back-upbestemming kon niet worden bereikt. :error',
'unhealthy_backup_found_empty' => 'Er zijn geen back-ups van deze applicatie beschikbaar.',
'unhealthy_backup_found_old' => 'De laatste back-up gemaakt op :date is te oud.',
'unhealthy_backup_found_unknown' => 'Sorry, een exacte reden kon niet worden bepaald.',
'unhealthy_backup_found_full' => 'De back-ups gebruiken te veel opslagruimte. Momenteel wordt er :disk_usage gebruikt wat hoger is dan de toegestane limiet van :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Błąd: :message',
'exception_trace' => 'Zrzut błędu: :trace',
'exception_message_title' => 'Błąd',
'exception_trace_title' => 'Zrzut błędu',
'backup_failed_subject' => 'Tworzenie kopii zapasowej aplikacji :application_name nie powiodło się',
'backup_failed_body' => 'Ważne: Wystąpił błąd podczas tworzenia kopii zapasowej aplikacji :application_name',
'backup_successful_subject' => 'Pomyślnie utworzono kopię zapasową aplikacji :application_name',
'backup_successful_subject_title' => 'Nowa kopia zapasowa!',
'backup_successful_body' => 'Wspaniała wiadomość, nowa kopia zapasowa aplikacji :application_name została pomyślnie utworzona na dysku o nazwie :disk_name.',
'cleanup_failed_subject' => 'Czyszczenie kopii zapasowych aplikacji :application_name nie powiodło się.',
'cleanup_failed_body' => 'Wystąpił błąd podczas czyszczenia kopii zapasowej aplikacji :application_name',
'cleanup_successful_subject' => 'Kopie zapasowe aplikacji :application_name zostały pomyślnie wyczyszczone',
'cleanup_successful_subject_title' => 'Kopie zapasowe zostały pomyślnie wyczyszczone!',
'cleanup_successful_body' => 'Czyszczenie kopii zapasowych aplikacji :application_name na dysku :disk_name zakończone sukcecem.',
'healthy_backup_found_subject' => 'Kopie zapasowe aplikacji :application_name na dysku :disk_name są poprawne',
'healthy_backup_found_subject_title' => 'Kopie zapasowe aplikacji :application_name są poprawne',
'healthy_backup_found_body' => 'Kopie zapasowe aplikacji :application_name są poprawne. Dobra robota!',
'unhealthy_backup_found_subject' => 'Ważne: Kopie zapasowe aplikacji :application_name są niepoprawne',
'unhealthy_backup_found_subject_title' => 'Ważne: Kopie zapasowe aplikacji :application_name są niepoprawne. :problem',
'unhealthy_backup_found_body' => 'Kopie zapasowe aplikacji :application_name na dysku :disk_name są niepoprawne.',
'unhealthy_backup_found_not_reachable' => 'Miejsce docelowe kopii zapasowej nie jest osiągalne. :error',
'unhealthy_backup_found_empty' => 'W aplikacji nie ma żadnej kopii zapasowych tej aplikacji.',
'unhealthy_backup_found_old' => 'Ostatnia kopia zapasowa wykonania dnia :date jest zbyt stara.',
'unhealthy_backup_found_unknown' => 'Niestety, nie można ustalić dokładnego błędu.',
'unhealthy_backup_found_full' => 'Kopie zapasowe zajmują zbyt dużo miejsca. Obecne użycie dysku :disk_usage jest większe od ustalonego limitu :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Exception message: :message',
'exception_trace' => 'Exception trace: :trace',
'exception_message_title' => 'Exception message',
'exception_trace_title' => 'Exception trace',
'backup_failed_subject' => 'Falha no backup da aplicação :application_name',
'backup_failed_body' => 'Importante: Ocorreu um erro ao fazer o backup da aplicação :application_name',
'backup_successful_subject' => 'Backup realizado com sucesso: :application_name',
'backup_successful_subject_title' => 'Backup Realizado com sucesso!',
'backup_successful_body' => 'Boas notícias, um novo backup da aplicação :application_name foi criado no disco :disk_name.',
'cleanup_failed_subject' => 'Falha na limpeza dos backups da aplicação :application_name.',
'cleanup_failed_body' => 'Um erro ocorreu ao fazer a limpeza dos backups da aplicação :application_name',
'cleanup_successful_subject' => 'Limpeza dos backups da aplicação :application_name concluída!',
'cleanup_successful_subject_title' => 'Limpeza dos backups concluída!',
'cleanup_successful_body' => 'A limpeza dos backups da aplicação :application_name no disco :disk_name foi concluída.',
'healthy_backup_found_subject' => 'Os backups da aplicação :application_name no disco :disk_name estão em dia',
'healthy_backup_found_subject_title' => 'Os backups da aplicação :application_name estão em dia',
'healthy_backup_found_body' => 'Os backups da aplicação :application_name estão em dia. Bom trabalho!',
'unhealthy_backup_found_subject' => 'Importante: Os backups da aplicação :application_name não estão em dia',
'unhealthy_backup_found_subject_title' => 'Importante: Os backups da aplicação :application_name não estão em dia. :problem',
'unhealthy_backup_found_body' => 'Os backups da aplicação :application_name no disco :disk_name não estão em dia.',
'unhealthy_backup_found_not_reachable' => 'O destino dos backups não pode ser alcançado. :error',
'unhealthy_backup_found_empty' => 'Não existem backups para essa aplicação.',
'unhealthy_backup_found_old' => 'O último backup realizado em :date é considerado muito antigo.',
'unhealthy_backup_found_unknown' => 'Desculpe, a exata razão não pode ser encontrada.',
'unhealthy_backup_found_full' => 'Os backups estão usando muito espaço de armazenamento. A utilização atual é de :disk_usage, o que é maior que o limite permitido de :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Cu excepția mesajului: :message',
'exception_trace' => 'Urmă excepţie: :trace',
'exception_message_title' => 'Mesaj de excepție',
'exception_trace_title' => 'Urmă excepţie',
'backup_failed_subject' => 'Nu s-a putut face copie de rezervă pentru :application_name',
'backup_failed_body' => 'Important: A apărut o eroare în timpul generării copiei de rezervă pentru :application_name',
'backup_successful_subject' => 'Copie de rezervă efectuată cu succes pentru :application_name',
'backup_successful_subject_title' => 'O nouă copie de rezervă a fost efectuată cu succes!',
'backup_successful_body' => 'Vești bune, o nouă copie de rezervă pentru :application_name a fost creată cu succes pe discul cu numele :disk_name.',
'cleanup_failed_subject' => 'Curățarea copiilor de rezervă pentru :application_name nu a reușit.',
'cleanup_failed_body' => 'A apărut o eroare în timpul curățirii copiilor de rezervă pentru :application_name',
'cleanup_successful_subject' => 'Curățarea copiilor de rezervă pentru :application_name a fost făcută cu succes',
'cleanup_successful_subject_title' => 'Curățarea copiilor de rezervă a fost făcută cu succes!',
'cleanup_successful_body' => 'Curățarea copiilor de rezervă pentru :application_name de pe discul cu numele :disk_name a fost făcută cu succes.',
'healthy_backup_found_subject' => 'Copiile de rezervă pentru :application_name de pe discul :disk_name sunt în regulă',
'healthy_backup_found_subject_title' => 'Copiile de rezervă pentru :application_name sunt în regulă',
'healthy_backup_found_body' => 'Copiile de rezervă pentru :application_name sunt considerate în regulă. Bună treabă!',
'unhealthy_backup_found_subject' => 'Important: Copiile de rezervă pentru :application_name nu sunt în regulă',
'unhealthy_backup_found_subject_title' => 'Important: Copiile de rezervă pentru :application_name nu sunt în regulă. :problem',
'unhealthy_backup_found_body' => 'Copiile de rezervă pentru :application_name de pe discul :disk_name nu sunt în regulă.',
'unhealthy_backup_found_not_reachable' => 'Nu se poate ajunge la destinația copiilor de rezervă. :error',
'unhealthy_backup_found_empty' => 'Nu există copii de rezervă ale acestei aplicații.',
'unhealthy_backup_found_old' => 'Cea mai recentă copie de rezervă făcută la :date este considerată prea veche.',
'unhealthy_backup_found_unknown' => 'Ne pare rău, un motiv exact nu poate fi determinat.',
'unhealthy_backup_found_full' => 'Copiile de rezervă folosesc prea mult spațiu de stocare. Utilizarea curentă este de :disk_usage care este mai mare decât limita permisă de :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Сообщение об ошибке: :message',
'exception_trace' => 'Сведения об ошибке: :trace',
'exception_message_title' => 'Сообщение об ошибке',
'exception_trace_title' => 'Сведения об ошибке',
'backup_failed_subject' => 'Не удалось сделать резервную копию :application_name',
'backup_failed_body' => 'Внимание: Произошла ошибка во время резервного копирования :application_name',
'backup_successful_subject' => 'Успешно создана новая резервная копия :application_name',
'backup_successful_subject_title' => 'Успешно создана новая резервная копия!',
'backup_successful_body' => 'Отличная новость, новая резервная копия :application_name успешно создана и сохранена на диск :disk_name.',
'cleanup_failed_subject' => 'Не удалось очистить резервные копии :application_name',
'cleanup_failed_body' => 'Произошла ошибка при очистке резервных копий :application_name',
'cleanup_successful_subject' => 'Очистка от резервных копий :application_name прошла успешно',
'cleanup_successful_subject_title' => 'Очистка резервных копий прошла удачно!',
'cleanup_successful_body' => 'Очистка от старых резервных копий :application_name на диске :disk_name прошла удачно.',
'healthy_backup_found_subject' => 'Резервная копия :application_name с диска :disk_name установлена',
'healthy_backup_found_subject_title' => 'Резервная копия :application_name установлена',
'healthy_backup_found_body' => 'Резервная копия :application_name успешно установлена. Хорошая работа!',
'unhealthy_backup_found_subject' => 'Внимание: резервная копия :application_name не установилась',
'unhealthy_backup_found_subject_title' => 'Внимание: резервная копия для :application_name не установилась. :problem',
'unhealthy_backup_found_body' => 'Резервная копия для :application_name на диске :disk_name не установилась.',
'unhealthy_backup_found_not_reachable' => 'Резервная копия не смогла установиться. :error',
'unhealthy_backup_found_empty' => 'Резервные копии для этого приложения отсутствуют.',
'unhealthy_backup_found_old' => 'Последнее резервное копирование создано :date является устаревшим.',
'unhealthy_backup_found_unknown' => 'Извините, точная причина не может быть определена.',
'unhealthy_backup_found_full' => 'Резервные копии используют слишком много памяти. Используется :disk_usage что выше допустимого предела: :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Hata mesajı: :message',
'exception_trace' => 'Hata izleri: :trace',
'exception_message_title' => 'Hata mesajı',
'exception_trace_title' => 'Hata izleri',
'backup_failed_subject' => 'Yedeklenemedi :application_name',
'backup_failed_body' => 'Önemli: Yedeklenirken bir hata oluştu :application_name',
'backup_successful_subject' => 'Başarılı :application_name yeni yedeklemesi',
'backup_successful_subject_title' => 'Başarılı bir yeni yedekleme!',
'backup_successful_body' => 'Harika bir haber, :application_name âit yeni bir yedekleme :disk_name adlı diskte başarıyla oluşturuldu.',
'cleanup_failed_subject' => ':application_name yedeklemeleri temizlenmesi başarısız.',
'cleanup_failed_body' => ':application_name yedeklerini temizlerken bir hata oluştu ',
'cleanup_successful_subject' => ':application_name yedeklemeleri temizlenmesi başarılı.',
'cleanup_successful_subject_title' => 'Yedeklerin temizlenmesi başarılı!',
'cleanup_successful_body' => ':application_name yedeklemeleri temizlenmesi ,:disk_name diskinden silindi',
'healthy_backup_found_subject' => ':application_name yedeklenmesi ,:disk_name adlı diskte sağlıklı',
'healthy_backup_found_subject_title' => ':application_name yedeklenmesi sağlıklı',
'healthy_backup_found_body' => ':application_name için yapılan yedeklemeler sağlıklı sayılır. Aferin!',
'unhealthy_backup_found_subject' => 'Önemli: :application_name için yedeklemeler sağlıksız',
'unhealthy_backup_found_subject_title' => 'Önemli: :application_name için yedeklemeler sağlıksız. :problem',
'unhealthy_backup_found_body' => 'Yedeklemeler: :application_name disk: :disk_name sağlıksız.',
'unhealthy_backup_found_not_reachable' => 'Yedekleme hedefine ulaşılamıyor. :error',
'unhealthy_backup_found_empty' => 'Bu uygulamanın yedekleri yok.',
'unhealthy_backup_found_old' => ':date tarihinde yapılan en son yedekleme çok eski kabul ediliyor.',
'unhealthy_backup_found_unknown' => 'Üzgünüm, kesin bir sebep belirlenemiyor.',
'unhealthy_backup_found_full' => 'Yedeklemeler çok fazla depolama alanı kullanıyor. Şu anki kullanım: :disk_usage, izin verilen sınırdan yüksek: :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'Повідомлення про помилку: :message',
'exception_trace' => 'Деталі помилки: :trace',
'exception_message_title' => 'Повідомлення помилки',
'exception_trace_title' => 'Деталі помилки',
'backup_failed_subject' => 'Не вдалось зробити резервну копію :application_name',
'backup_failed_body' => 'Увага: Трапилась помилка під час резервного копіювання :application_name',
'backup_successful_subject' => 'Успішне резервне копіювання :application_name',
'backup_successful_subject_title' => 'Успішно створена резервна копія!',
'backup_successful_body' => 'Чудова новина, нова резервна копія :application_name успішно створена і збережена на диск :disk_name.',
'cleanup_failed_subject' => 'Не вдалось очистити резервні копії :application_name',
'cleanup_failed_body' => 'Сталася помилка під час очищення резервних копій :application_name',
'cleanup_successful_subject' => 'Успішне очищення від резервних копій :application_name',
'cleanup_successful_subject_title' => 'Очищення резервних копій пройшло вдало!',
'cleanup_successful_body' => 'Очищенно від старих резервних копій :application_name на диску :disk_name пойшло успішно.',
'healthy_backup_found_subject' => 'Резервна копія :application_name з диску :disk_name установлена',
'healthy_backup_found_subject_title' => 'Резервна копія :application_name установлена',
'healthy_backup_found_body' => 'Резервна копія :application_name успішно установлена. Хороша робота!',
'unhealthy_backup_found_subject' => 'Увага: резервна копія :application_name не установилась',
'unhealthy_backup_found_subject_title' => 'Увага: резервна копія для :application_name не установилась. :problem',
'unhealthy_backup_found_body' => 'Резервна копія для :application_name на диску :disk_name не установилась.',
'unhealthy_backup_found_not_reachable' => 'Резервна копія не змогла установитись. :error',
'unhealthy_backup_found_empty' => 'Резервні копії для цього додатку відсутні.',
'unhealthy_backup_found_old' => 'Останнє резервне копіювання створено :date є застарілим.',
'unhealthy_backup_found_unknown' => 'Вибачте, але ми не змогли визначити точну причину.',
'unhealthy_backup_found_full' => 'Резервні копії використовують занадто багато пам`яті. Використовується :disk_usage що вище за допустиму межу :disk_limit.',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => '异常信息: :message',
'exception_trace' => '异常跟踪: :trace',
'exception_message_title' => '异常信息',
'exception_trace_title' => '异常跟踪',
'backup_failed_subject' => ':application_name 备份失败',
'backup_failed_body' => '重要说明:备份 :application_name 时发生错误',
'backup_successful_subject' => ':application_name 备份成功',
'backup_successful_subject_title' => '备份成功!',
'backup_successful_body' => '好消息, :application_name 备份成功,位于磁盘 :disk_name 中。',
'cleanup_failed_subject' => '清除 :application_name 的备份失败。',
'cleanup_failed_body' => '清除备份 :application_name 时发生错误',
'cleanup_successful_subject' => '成功清除 :application_name 的备份',
'cleanup_successful_subject_title' => '成功清除备份!',
'cleanup_successful_body' => '成功清除 :disk_name 磁盘上 :application_name 的备份。',
'healthy_backup_found_subject' => ':disk_name 磁盘上 :application_name 的备份是健康的',
'healthy_backup_found_subject_title' => ':application_name 的备份是健康的',
'healthy_backup_found_body' => ':application_name 的备份是健康的。干的好!',
'unhealthy_backup_found_subject' => '重要说明::application_name 的备份不健康',
'unhealthy_backup_found_subject_title' => '重要说明::application_name 备份不健康。 :problem',
'unhealthy_backup_found_body' => ':disk_name 磁盘上 :application_name 的备份不健康。',
'unhealthy_backup_found_not_reachable' => '无法访问备份目标。 :error',
'unhealthy_backup_found_empty' => '根本没有此应用程序的备份。',
'unhealthy_backup_found_old' => '最近的备份创建于 :date ,太旧了。',
'unhealthy_backup_found_unknown' => '对不起,确切原因无法确定。',
'unhealthy_backup_found_full' => '备份占用了太多存储空间。当前占用了 :disk_usage ,高于允许的限制 :disk_limit。',
];

View File

@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => '異常訊息: :message',
'exception_trace' => '異常追蹤: :trace',
'exception_message_title' => '異常訊息',
'exception_trace_title' => '異常追蹤',
'backup_failed_subject' => ':application_name 備份失敗',
'backup_failed_body' => '重要說明:備份 :application_name 時發生錯誤',
'backup_successful_subject' => ':application_name 備份成功',
'backup_successful_subject_title' => '備份成功!',
'backup_successful_body' => '好消息, :application_name 備份成功,位於磁盤 :disk_name 中。',
'cleanup_failed_subject' => '清除 :application_name 的備份失敗。',
'cleanup_failed_body' => '清除備份 :application_name 時發生錯誤',
'cleanup_successful_subject' => '成功清除 :application_name 的備份',
'cleanup_successful_subject_title' => '成功清除備份!',
'cleanup_successful_body' => '成功清除 :disk_name 磁盤上 :application_name 的備份。',
'healthy_backup_found_subject' => ':disk_name 磁盤上 :application_name 的備份是健康的',
'healthy_backup_found_subject_title' => ':application_name 的備份是健康的',
'healthy_backup_found_body' => ':application_name 的備份是健康的。幹的好!',
'unhealthy_backup_found_subject' => '重要說明::application_name 的備份不健康',
'unhealthy_backup_found_subject_title' => '重要說明::application_name 備份不健康。 :problem',
'unhealthy_backup_found_body' => ':disk_name 磁盤上 :application_name 的備份不健康。',
'unhealthy_backup_found_not_reachable' => '無法訪問備份目標。 :error',
'unhealthy_backup_found_empty' => '根本沒有此應用程序的備份。',
'unhealthy_backup_found_old' => '最近的備份創建於 :date ,太舊了。',
'unhealthy_backup_found_unknown' => '對不起,確切原因無法確定。',
'unhealthy_backup_found_full' => '備份佔用了太多存儲空間。當前佔用了 :disk_usage ,高於允許的限制 :disk_limit。',
];

View File

@@ -99,7 +99,7 @@ return [
'port' => 587,
'from' => [
'name' => '',
'address' => '',
'address' => 'no-reply@phpvms.net',
],
'username' => '',
'password' => '',

View File

@@ -0,0 +1,12 @@
@component('mail::message')
# New PIREP Submitted
A new PIREP has been submitted by {{ $pirep->user->ident }} {{ $pirep->user->name }}
@component('mail::button', ['url' => route('admin.pireps.edit', [$pirep->id])])
View PIREP
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent

View File

@@ -0,0 +1,12 @@
@component('mail::message')
# PIREP Accepted!
Your PIREP has been accepted
@component('mail::button', ['url' => route('frontend.pireps.show', [$pirep->id])])
View PIREP
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent

View File

@@ -0,0 +1,12 @@
@component('mail::message')
# PIREP Accepted!
Your PIREP has been rejected
@component('mail::button', ['url' => route('frontend.pireps.show', [$pirep->id])])
View PIREP
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent