<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/laravel-debugbar" />
<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/laravel-ide-helper" />
<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/reflection-docblock" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/caouecs/laravel-lang" />
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/stream-filter" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/coderello/laravel-nova-lang" />
<excludeFolder url="file://$MODULE_DIR$/vendor/itsgoingd/clockwork" />
<excludeFolder url="file://$MODULE_DIR$/vendor/justinrainbow/json-schema" />
<excludeFolder url="file://$MODULE_DIR$/vendor/kriswallsmith/buzz" />
<path value="$PROJECT_DIR$/vendor/maatwebsite/excel" />
<path value="$PROJECT_DIR$/vendor/markbaker/matrix" />
<path value="$PROJECT_DIR$/vendor/markbaker/complex" />
+ <path value="$PROJECT_DIR$/vendor/coderello/laravel-nova-lang" />
+ <path value="$PROJECT_DIR$/vendor/caouecs/laravel-lang" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.2" />
{
$tags = Arr::get($webhookData, 'event-data.tags');
- $broadcast = in_array(env('APP_ENV'), $tags, true);
/** @todo check webhook key */
'email_batch_id' => $this->batch_id
]);
+ $this->broadcast = in_array(env('APP_ENV'), $tags, true) &&
+ ($event->wasRecentlyCreated);
+
$event->touch();
$this->data = $event;
/** @var Collection $users */
$users = User::subscribed()->get();
- $size = env('MAILGUN_CHUNK_SIZE', 50);
+ $size = env('MAILGUN_CHUNK_SIZE', 200);
$chunks = $users->chunk($size);
$this->processUpdate([
--- /dev/null
+<?php
+
+namespace App\Nova\Actions;
+
+use Illuminate\Bus\Queueable;
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Support\Collection;
+use Laravel\Nova\Actions\Action;
+use Laravel\Nova\Fields\ActionFields;
+
+class SetSubscriptionStatus extends Action
+{
+ use InteractsWithQueue, Queueable;
+
+ private $setActive;
+
+ public $showOnTableRow = true;
+ public $withoutConfirmation = true;
+
+ public function __construct($setActive)
+ {
+ $this->setActive = $setActive;
+ }
+
+
+ public function name()
+ {
+ return $this->setActive ?
+ "Activer abonnement" :
+ "Désabonner";
+ }
+
+ /**
+ * Perform the action on the given models.
+ *
+ * @param \Laravel\Nova\Fields\ActionFields $fields
+ * @param \Illuminate\Support\Collection $models
+ * @return mixed
+ */
+ public function handle(ActionFields $fields, Collection $models)
+ {
+ $models->map->update(['subscription_active' => $this->setActive]);
+
+ $message = $this->setActive ?
+ "Abonnement activé avec succès" :
+ "Abonnement désactivé avec succès";
+
+ return Action::message($message);
+
+ }
+
+ /**
+ * Get the fields available on the action.
+ *
+ * @return array
+ */
+ public function fields()
+ {
+ return [];
+ }
+}
--- /dev/null
+<?php
+
+namespace App\Nova\Filters;
+
+use Illuminate\Http\Request;
+use Laravel\Nova\Filters\Filter;
+
+class SubscriptionStatusFilter extends Filter
+{
+ /**
+ * The filter's component.
+ *
+ * @var string
+ */
+ public $component = 'select-filter';
+
+ public $name = "Abonnement";
+
+
+ /**
+ * Apply the filter to the given query.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ * @param mixed $value
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function apply(Request $request, $query, $value)
+ {
+ return $query->where('subscription_active', $value);
+ }
+
+ /**
+ * Get the filter's available options.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @return array
+ */
+ public function options(Request $request)
+ {
+ return [
+ 'Inactif' => 0,
+ 'Actif' => 1,
+ ];
+ }
+}
--- /dev/null
+<?php
+
+namespace App\Nova\Filters;
+
+use App\OrganizationType;
+use Illuminate\Http\Request;
+use Laravel\Nova\Filters\Filter;
+
+class TypeFilter extends Filter
+{
+ /**
+ * The filter's component.
+ *
+ * @var string
+ */
+ public $component = 'select-filter';
+
+ /**
+ * Apply the filter to the given query.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ * @param mixed $value
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function apply(Request $request, $query, $value)
+ {
+ return $query->where('type_id', $value);
+ }
+
+ /**
+ * Get the filter's available options.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @return array
+ */
+ public function options(Request $request)
+ {
+ return OrganizationType::pluck('id', 'name');
+ }
+}
namespace App\Nova;
+use App\Nova\Actions\SetSubscriptionStatus;
+use App\Nova\Filters\SubscriptionStatusFilter;
+use App\Nova\Filters\TypeFilter;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\BelongsTo;
use Laravel\Nova\Fields\Boolean;
*/
public function filters(Request $request)
{
- return [];
+ return [
+ new SubscriptionStatusFilter,
+ new TypeFilter,
+ ];
}
/**
*/
public function actions(Request $request)
{
- return [];
+ return [
+ new SetSubscriptionStatus(true),
+ new SetSubscriptionStatus(false),
+ ];
}
}
*/
public static $model = \App\User::class;
+
/**
* The single value that should be used to represent the resource when being displayed.
*
public function fields(Request $request)
{
return [
- new Panel('Fiche', $this->basicInfo()),
+ Text::make('Prénom', 'first_name'),
+ Text::make('Nom', 'last_name'),
+ Text::make('Email'),
+ Text::make('Position'),
+ Text::make('Téléphone', 'phone'),
new Panel('Adresse', $this->addressFields()),
new Panel('Affiliation', [
- BelongsTo::make('Organisation', 'organization', Organization::class),
+ BelongsTo::make('Organisation', 'organization', Organization::class)->searchable(),
]),
Boolean::make('Abonnement actif', 'isSubscribed')->readonly()->onlyOnIndex(),
}
- protected function basicInfo()
- {
- return [
- ID::make()->sortable()->onlyOnIndex(),
- Text::make('Prénom', 'first_name'),
- Text::make('Nom', 'last_name'),
- Text::make('Email')->hideFromIndex(),
- Text::make('Position'),
- Text::make('Téléphone', 'phone'),
- ];
-
- }
-
/**
* Get the address fields for the resource.
protected function addressFields()
{
return [
- Place::make('Address', 'address_line_1')->hideFromIndex(),
- Text::make('City')->hideFromIndex(),
- Text::make('Postal Code')->hideFromIndex(),
- Country::make('Country')->hideFromIndex(),
+ Place::make('Adresse', 'address_line_1')->hideFromIndex(),
+ Text::make('Ville', 'city')->hideFromIndex(),
+ Text::make('Code Postal', 'postal_code')->hideFromIndex(),
+ Country::make('Pays', 'country')->hideFromIndex(),
];
}
$this->makeJson();
$this->makeCover();
$this->makeSearchable();
- if(!env('APP_ENV') === 'local')
+// if(!env('APP_ENV') === 'local')
$this->shortenLinks();
$this->saveToCloud();
"algolia/algoliasearch-client-php": "^2.6",
"anaseqal/nova-import": "^0.0.3",
"area17/twill": "^2.0",
+ "caouecs/laravel-lang": "~6.0",
+ "coderello/laravel-nova-lang": "^1.4",
"fideloper/proxy": "^4.2",
"fruitcake/laravel-cors": "^1.0",
"guzzlehttp/guzzle": "^6.3",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "170735a710a465a709486727eadb7f99",
+ "content-hash": "0b4e0e19d3fc9c24169a8401ede1ddff",
"packages": [
{
"name": "algolia/algoliasearch-client-php",
],
"time": "2019-11-30T02:33:19+00:00"
},
+ {
+ "name": "caouecs/laravel-lang",
+ "version": "6.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/caouecs/Laravel-lang.git",
+ "reference": "1f21bad146c6a042f13f34b8db64966584699c57"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/caouecs/Laravel-lang/zipball/1f21bad146c6a042f13f34b8db64966584699c57",
+ "reference": "1f21bad146c6a042f13f34b8db64966584699c57",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*"
+ },
+ "suggest": {
+ "ablunier/laravel-lang-installer": "Command for easily add languages to a Laravel project",
+ "andrey-helldar/laravel-lang-publisher": "Easy installation and update of translation files for your project",
+ "arcanedev/laravel-lang": "Translations manager and checker for Laravel 5",
+ "overtrue/laravel-lang": "Command to add languages in your project"
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "caouecs",
+ "email": "caouecs@caouecs.net"
+ }
+ ],
+ "description": "Languages for Laravel",
+ "keywords": [
+ "lang",
+ "languages",
+ "laravel",
+ "lpm"
+ ],
+ "time": "2020-03-17T15:39:13+00:00"
+ },
{
"name": "cartalyst/tags",
"version": "v10.0.1",
],
"time": "2019-04-09T12:31:48+00:00"
},
+ {
+ "name": "coderello/laravel-nova-lang",
+ "version": "1.4.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/coderello/laravel-nova-lang.git",
+ "reference": "4760cf1e7437ba9ca0112661af11208f59e5f39c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/coderello/laravel-nova-lang/zipball/4760cf1e7437ba9ca0112661af11208f59e5f39c",
+ "reference": "4760cf1e7437ba9ca0112661af11208f59e5f39c",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/framework": "5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0",
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Coderello\\LaravelNovaLang\\Providers\\LaravelNovaLangServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Coderello\\LaravelNovaLang\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Language support for Laravel Nova.",
+ "keywords": [
+ "lang",
+ "language",
+ "laravel",
+ "nova",
+ "support"
+ ],
+ "time": "2020-04-19T11:20:08+00:00"
+ },
{
"name": "dasprid/enum",
"version": "1.0.0",
--- /dev/null
+{
+ "A fresh verification link has been sent to your email address.": "Un nouveau lien de vérification a été envoyé à votre adresse email.",
+ "All rights reserved.": "Tous droits réservés.",
+ "Before proceeding, please check your email for a verification link.": "Avant de continuer, veuillez vérifier votre courrier électronique pour un lien de vérification.",
+ "click here to request another": "cliquer ici pour faire une autre demande",
+ "Confirm Password": "Confirmez le mot de passe",
+ "E-Mail Address": "Adresse email",
+ "Error": "Erreur",
+ "Forbidden": "Interdit",
+ "Forgot Your Password?": "Vous avez oublié votre mot de passe ?",
+ "Go Home": "Aller à l'accueil",
+ "Hello!": "Bonjour !",
+ "hi": "salut",
+ "If you did not create an account, no further action is required.": "Si vous n'avez pas créé de compte, aucune action supplémentaire n'est requise.",
+ "If you did not receive the email": "Si vous n'avez pas reçu l'email",
+ "If you did not request a password reset, no further action is required.": "Si vous n'avez pas demandé de réinitialisation de mot de passe, aucune autre action n'est requise.",
+ "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser: [:displayableActionUrl](:actionURL)": "Si vous avez des problèmes en cliquant sur le bouton \":actionText\", faites un copié/collé de l'url ci-dessous dans votre navigateur :\n [:displayableActionUrl](:actionURL)",
+ "Invalid signature.": "Signature invalide",
+ "Login": "Connexion",
+ "Logout": "Déconnexion",
+ "Name": "Nom",
+ "Not Found": "Non trouvé",
+ "Oh no": "Oh non",
+ "Page Expired": "Page expirée",
+ "Page Not Found": "Page non trouvée",
+ "Password": "Mot de passe",
+ "Please click the button below to verify your email address.": "Veuillez cliquer sur le bouton ci-dessous pour vérifier votre adresse email.",
+ "Please confirm your password before continuing.": "Veuillez confirmer votre mot de passe avant de continuer",
+ "Regards": "Cordialement",
+ "Register": "S'inscrire",
+ "Remember Me": "Se souvenir de moi",
+ "Reset Password": "Réinitialisation du mot de passe",
+ "Reset Password Notification": "Notification de réinitialisation du mot de passe",
+ "Send Password Reset Link": "Envoyer le lien de réinitialisation du mot de passe",
+ "Server Error": "Erreur serveur",
+ "Service Unavailable": "Service indisponible",
+ "Sorry, the page you are looking for could not be found.": "Désolé, la page que vous recherchez est introuvable.",
+ "Sorry, we are doing some maintenance. Please check back soon.": "Désolé, nous sommes en maintenance. Veuillez revenir plus tard.",
+ "Sorry, you are forbidden from accessing this page.": "Désolé, vous ne pouvez accéder à cette page.",
+ "Sorry, you are making too many requests to our servers.": "Désolé, vous faites trop de requêtes vers nos serveurs.",
+ "Sorry, you are not authorized to access this page.": "Désolé, vous n'êtes pas autorisé à accéder à cette page.",
+ "Sorry, your session has expired. Please refresh and try again.": "Désolé, votre session a expiré. Veuillez actualiser la page et réessayer.",
+ "This action is unauthorized.": "Cette action n'est pas autorisée.",
+ "This password reset link will expire in :count minutes.": "Ce lien de réinitialisation du mot de passe expirera dans :count minutes.",
+ "Toggle navigation": "Basculer la navigation",
+ "Too Many Attempts.": "Trop de tentatives.",
+ "Too Many Requests": "Trop de requêtes",
+ "Unauthorized": "Non autorisé",
+ "Verify Email Address": "Vérification de l'adresse email",
+ "Verify Your Email Address": "Vérifiez votre adresse email",
+ "We won't ask for your password again for a few hours.": "Nous ne vous demanderons plus votre mot de passe pour quelques heures",
+ "Whoops!": "Oups !",
+ "Whoops, something went wrong on our servers.": "Oups, quelque chose s'est mal passé sur nos serveurs.",
+ "You are receiving this email because we received a password reset request for your account.": "Vous recevez cet email car nous avons reçu une demande de réinitialisation de mot de passe pour votre compte.",
+ "Your email address is not verified.": "Votre adresse email n'a pas été vérifiée."
+}
--- /dev/null
+<?php
+
+return [
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used during authentication for various
+ | messages that we need to display to the user. You are free to modify
+ | these language lines according to your application's requirements.
+ |
+ */
+
+ 'failed' => 'Ces identifiants ne correspondent pas à nos enregistrements',
+ 'throttle' => 'Tentatives de connexion trop nombreuses. Veuillez essayer de nouveau dans :seconds secondes.',
+];
--- /dev/null
+<?php
+
+return [
+ /*
+ |--------------------------------------------------------------------------
+ | Pagination Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used by the paginator library to build
+ | the simple pagination links. You are free to change them to anything
+ | you want to customize your views to better match your application.
+ |
+ */
+
+ 'previous' => '« Précédent',
+ 'next' => 'Suivant »',
+];
--- /dev/null
+<?php
+
+return [
+ /*
+ |--------------------------------------------------------------------------
+ | Password Reminder Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are the default lines which match reasons
+ | that are given by the password broker for a password update attempt
+ | has failed, such as for an invalid token or invalid new password.
+ |
+ */
+
+ 'reset' => 'Votre mot de passe a été réinitialisé !',
+ 'sent' => 'Nous vous avons envoyé par email le lien de réinitialisation du mot de passe !',
+ 'throttled' => 'Veuillez attendre afin de ré-essayer.',
+ 'token' => "Ce jeton de réinitialisation du mot de passe n'est pas valide.",
+ 'user' => "Aucun utilisateur n'a été trouvé avec cette adresse email.",
+];
--- /dev/null
+<?php
+
+return [
+ /*
+ |--------------------------------------------------------------------------
+ | Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines contain the default error messages used by
+ | the validator class. Some of these rules have multiple versions such
+ | as the size rules. Feel free to tweak each of these messages.
+ |
+ */
+
+ 'accepted' => 'Le champ :attribute doit être accepté.',
+ 'active_url' => "Le champ :attribute n'est pas une URL valide.",
+ 'after' => 'Le champ :attribute doit être une date postérieure au :date.',
+ 'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale au :date.',
+ 'alpha' => 'Le champ :attribute doit contenir uniquement des lettres.',
+ 'alpha_dash' => 'Le champ :attribute doit contenir uniquement des lettres, des chiffres et des tirets.',
+ 'alpha_num' => 'Le champ :attribute doit contenir uniquement des chiffres et des lettres.',
+ 'array' => 'Le champ :attribute doit être un tableau.',
+ 'before' => 'Le champ :attribute doit être une date antérieure au :date.',
+ 'before_or_equal' => 'Le champ :attribute doit être une date antérieure ou égale au :date.',
+ 'between' => [
+ 'numeric' => 'La valeur de :attribute doit être comprise entre :min et :max.',
+ 'file' => 'La taille du fichier de :attribute doit être comprise entre :min et :max kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir entre :min et :max caractères.',
+ 'array' => 'Le tableau :attribute doit contenir entre :min et :max éléments.',
+ ],
+ 'boolean' => 'Le champ :attribute doit être vrai ou faux.',
+ 'confirmed' => 'Le champ de confirmation :attribute ne correspond pas.',
+ 'date' => "Le champ :attribute n'est pas une date valide.",
+ 'date_equals' => 'Le champ :attribute doit être une date égale à :date.',
+ 'date_format' => 'Le champ :attribute ne correspond pas au format :format.',
+ 'different' => 'Les champs :attribute et :other doivent être différents.',
+ 'digits' => 'Le champ :attribute doit contenir :digits chiffres.',
+ 'digits_between' => 'Le champ :attribute doit contenir entre :min et :max chiffres.',
+ 'dimensions' => "La taille de l'image :attribute n'est pas conforme.",
+ 'distinct' => 'Le champ :attribute a une valeur en double.',
+ 'email' => 'Le champ :attribute doit être une adresse email valide.',
+ 'ends_with' => 'Le champ :attribute doit se terminer par une des valeurs suivantes : :values',
+ 'exists' => 'Le champ :attribute sélectionné est invalide.',
+ 'file' => 'Le champ :attribute doit être un fichier.',
+ 'filled' => 'Le champ :attribute doit avoir une valeur.',
+ 'gt' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir plus de :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir plus de :value éléments.',
+ ],
+ 'gte' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure ou égale à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au moins :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au moins :value éléments.',
+ ],
+ 'image' => 'Le champ :attribute doit être une image.',
+ 'in' => 'Le champ :attribute est invalide.',
+ 'in_array' => "Le champ :attribute n'existe pas dans :other.",
+ 'integer' => 'Le champ :attribute doit être un entier.',
+ 'ip' => 'Le champ :attribute doit être une adresse IP valide.',
+ 'ipv4' => 'Le champ :attribute doit être une adresse IPv4 valide.',
+ 'ipv6' => 'Le champ :attribute doit être une adresse IPv6 valide.',
+ 'json' => 'Le champ :attribute doit être un document JSON valide.',
+ 'lt' => [
+ 'numeric' => 'La valeur de :attribute doit être inférieure à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être inférieure à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir moins de :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir moins de :value éléments.',
+ ],
+ 'lte' => [
+ 'numeric' => 'La valeur de :attribute doit être inférieure ou égale à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être inférieure ou égale à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au plus :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au plus :value éléments.',
+ ],
+ 'max' => [
+ 'numeric' => 'La valeur de :attribute ne peut être supérieure à :max.',
+ 'file' => 'La taille du fichier de :attribute ne peut pas dépasser :max kilo-octets.',
+ 'string' => 'Le texte de :attribute ne peut contenir plus de :max caractères.',
+ 'array' => 'Le tableau :attribute ne peut contenir plus de :max éléments.',
+ ],
+ 'mimes' => 'Le champ :attribute doit être un fichier de type : :values.',
+ 'mimetypes' => 'Le champ :attribute doit être un fichier de type : :values.',
+ 'min' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :min.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure à :min kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au moins :min caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au moins :min éléments.',
+ ],
+ 'not_in' => "Le champ :attribute sélectionné n'est pas valide.",
+ 'not_regex' => "Le format du champ :attribute n'est pas valide.",
+ 'numeric' => 'Le champ :attribute doit contenir un nombre.',
+ 'password' => 'Le mot de passe est incorrect',
+ 'present' => 'Le champ :attribute doit être présent.',
+ 'regex' => 'Le format du champ :attribute est invalide.',
+ 'required' => 'Le champ :attribute est obligatoire.',
+ 'required_if' => 'Le champ :attribute est obligatoire quand la valeur de :other est :value.',
+ 'required_unless' => 'Le champ :attribute est obligatoire sauf si :other est :values.',
+ 'required_with' => 'Le champ :attribute est obligatoire quand :values est présent.',
+ 'required_with_all' => 'Le champ :attribute est obligatoire quand :values sont présents.',
+ 'required_without' => "Le champ :attribute est obligatoire quand :values n'est pas présent.",
+ 'required_without_all' => "Le champ :attribute est requis quand aucun de :values n'est présent.",
+ 'same' => 'Les champs :attribute et :other doivent être identiques.',
+ 'size' => [
+ 'numeric' => 'La valeur de :attribute doit être :size.',
+ 'file' => 'La taille du fichier de :attribute doit être de :size kilo-octets.',
+ 'string' => 'Le texte de :attribute doit contenir :size caractères.',
+ 'array' => 'Le tableau :attribute doit contenir :size éléments.',
+ ],
+ 'starts_with' => 'Le champ :attribute doit commencer avec une des valeurs suivantes : :values',
+ 'string' => 'Le champ :attribute doit être une chaîne de caractères.',
+ 'timezone' => 'Le champ :attribute doit être un fuseau horaire valide.',
+ 'unique' => 'La valeur du champ :attribute est déjà utilisée.',
+ 'uploaded' => "Le fichier du champ :attribute n'a pu être téléversé.",
+ 'url' => "Le format de l'URL de :attribute n'est pas valide.",
+ 'uuid' => 'Le champ :attribute doit être un UUID valide',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'custom-message',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap attribute place-holders
+ | with something more reader friendly such as E-Mail Address instead
+ | of "email". This simply helps us make messages a little cleaner.
+ |
+ */
+
+ 'attributes' => [
+ 'name' => 'nom',
+ 'username' => "nom d'utilisateur",
+ 'email' => 'adresse email',
+ 'first_name' => 'prénom',
+ 'last_name' => 'nom',
+ 'password' => 'mot de passe',
+ 'password_confirmation' => 'confirmation du mot de passe',
+ 'city' => 'ville',
+ 'country' => 'pays',
+ 'address' => 'adresse',
+ 'phone' => 'téléphone',
+ 'mobile' => 'portable',
+ 'age' => 'âge',
+ 'sex' => 'sexe',
+ 'gender' => 'genre',
+ 'day' => 'jour',
+ 'month' => 'mois',
+ 'year' => 'année',
+ 'hour' => 'heure',
+ 'minute' => 'minute',
+ 'second' => 'seconde',
+ 'title' => 'titre',
+ 'content' => 'contenu',
+ 'description' => 'description',
+ 'excerpt' => 'extrait',
+ 'date' => 'date',
+ 'time' => 'heure',
+ 'available' => 'disponible',
+ 'size' => 'taille',
+ ],
+];
--- /dev/null
+{
+ "Actions": "Actions",
+ "Details": "Détails",
+ "If you did not request a password reset, no further action is required.": "Si vous n’avez pas fait cette demande de réinitialisation du mot de passe, vous pouvez ignorer cet email.",
+ "Reset Password": "Réinitialiser le mot de passe",
+ "Sorry! You are not authorized to perform this action.": "Désolé ! Vous n’êtes pas autorisé à exécuter cette action.",
+ "You are receiving this email because we received a password reset request for your account.": "Vous recevez cet email car nous avons reçu une demande de réinitialisation de mot de passe pour votre compte.",
+ "Confirm Password": "Confirmer le mot de passe",
+ "Dashboard": "Tableau de bord",
+ "Email Address": "Adresse email",
+ "Forgot Your Password?": "Vous avez oublié votre mot de passe ?",
+ "Forgot your password?": "Vous avez oublié votre mot de passe ?",
+ "Login": "Connexion",
+ "Logout": "Déconnexion",
+ "Password": "Mot de passe",
+ "Remember Me": "Se souvenir de moi",
+ "Resources": "Ressources",
+ "Send Password Reset Link": "Envoyer le lien de réinitialisation de mot de passe",
+ "Welcome Back!": "Bienvenue à nouveau !",
+ "Delete Resource": "Supprimer la ressource",
+ "Delete": "Supprimer",
+ "Detach Resource": "Détacher des ressources",
+ "Detach": "Détacher",
+ "Detach Selected": "Détacher sélectionné",
+ "Delete Selected": "Supprimer la sélection",
+ "Force Delete Selected": "Forcer la suppression de la sélection",
+ "Restore Selected": "Restaurer les éléments sélectionnés",
+ "Restore Resource": "Restaurer la ressource",
+ "Restore": "Restaurer",
+ "Force Delete Resource": "Forcer la suppression de la ressource",
+ "Force Delete": "Forcer la suppression",
+ "The :resource was created!": "La ressource :resource a été ajouté !",
+ "Are you sure you want to delete this resource?": "Êtes-vous sûr de vouloir supprimer cette ressource ?",
+ "Are you sure you want to delete the selected resources?": "Êtes-vous sûr de vouloir supprimer les ressources sélectionnés ?",
+ "Are you sure you want to detach this resource?": "Êtes-vous sûr de vouloir détacher cette ressource ?",
+ "Are you sure you want to detach the selected resources?": "Êtes-vous sûr de vouloir détacher les ressources sélectionnées ?",
+ "Are you sure you want to force delete this resource?": "Êtes-vous sûr de vouloir forcer la suppression de cette ressource ?",
+ "Are you sure you want to force delete the selected resources?": "Êtes-vous sûr de vouloir forcer la suppression des ressources sélectionnées ?",
+ "Are you sure you want to restore this resource?": "Êtes-vous sûr de vouloir restaurer cette ressource ?",
+ "Are you sure you want to restore the selected resources?": "Êtes-vous sûr de vouloir restaurer les ressources sélectionnées ?",
+ "No :resource matched the given criteria.": "Aucun :resource ne correspond aux critères indiqués.",
+ "Another user has updated this resource since this page was loaded. Please refresh the page and try again.": "Un autre utilisateur a mis à jour cette ressource depuis que vous avez commencé à la modifier. Veuillez actualiser la page.",
+ "Are you sure you want to delete this file?": "Êtes-vous sûr de vouloir supprimer ce fichier ?",
+ "Are you sure you want to run this action?": "Êtes-vous sûr que vous voulez exécuter cette action ?",
+ "Attach": "Attacher",
+ "Attach & Attach Another": "Sauvegarder puis attacher un autre",
+ "Cancel": "Annuler",
+ "Choose": "Choisir",
+ "Choose File": "Choisissez un fichier",
+ "Choose Type": "Choisissez le type",
+ "Choose an option": "Choisissez une option",
+ "Click to choose": "Cliquez pour choisir",
+ "Reset Filters": "Effacer filtres",
+ "Create": "Créer",
+ "Create & Add Another": "Sauvegarder puis créer un autre",
+ "Delete File": "Supprimer le fichier",
+ "Edit": "Modifier",
+ "Edit Attached": "Modifier le attaché",
+ "Go Home": "Retour à l’accueil",
+ "Hold Up!": "Attention !",
+ "Lens": "Objectif",
+ "New": "Nouveau",
+ "Next": "Suivant",
+ "Only Trashed": "Seulement supprimé",
+ "Per Page": "Par page",
+ "Please select a resource to perform this action on.": "Veuillez sélectionner une ressource sur laquelle cette action sera exécutée.",
+ "Preview": "Aperçu",
+ "Previous": "Précédent",
+ "No Data": "Pas de donnée",
+ "No Current Data": "Aucune donnée",
+ "No Prior Data": "Aucune donnée plus ancienne",
+ "No Increase": "Pas d’augmentation",
+ "No Results Found.": "Aucun résultat trouvé.",
+ "Run Action": "Exécuter action",
+ "Select Action": "Sélectionner action",
+ "Search": "Rechercher",
+ "Press / to search": "Appuyer / pour rechercher",
+ "Select All": "Sélectionner tout",
+ "Select All Matching": "Sélectionner tout ci-dessous",
+ "Something went wrong.": "Un problème est survenu.",
+ "The action ran successfully!": "L’action s’est déroulée avec succès !",
+ "The government won't let us show you what's behind these doors": "Le gouvernement ne nous laissera pas vous montrer ce qu’il y a derrière ces portes",
+ "This image": "Cette image",
+ "Update": "Enregistrer",
+ "Update & Continue Editing": "Enregistrer et continuer",
+ "View": "Vue",
+ "We're lost in space. The page you were trying to view does not exist.": "Vous êtes perdu dans l’espace. La page demandée n’existe pas.",
+ "Show Content": "Montrer le contenu",
+ "Hide Content": "Masquer le contenu",
+ "Whoops": "Oups",
+ "Whoops!": "Oups !",
+ "With Trashed": "Supprimés inclus",
+ "Trashed": "Supprimés",
+ "Write": "Écrire",
+ "could not be found.": "n’a pas pu être trouvé.",
+ "total": "total",
+ "January": "Janvier",
+ "February": "Février",
+ "March": "Mars",
+ "April": "Avril",
+ "May": "Mai",
+ "June": "Juin",
+ "July": "Juillet",
+ "August": "Août",
+ "September": "Septembre",
+ "October": "Octobre",
+ "November": "Novembre",
+ "December": "Décembre",
+ "Afghanistan": "Afghanistan",
+ "Aland Islands": "Îles Åland",
+ "Albania": "Albanie",
+ "Algeria": "Algérie",
+ "American Samoa": "Samoa américaines",
+ "Andorra": "Andorre",
+ "Angola": "Angola",
+ "Anguilla": "Anguilla",
+ "Antarctica": "Antarctique",
+ "Antigua And Barbuda": "Antigua-et-Barbuda",
+ "Argentina": "Argentine",
+ "Armenia": "Arménie",
+ "Aruba": "Aruba",
+ "Australia": "Australie",
+ "Austria": "Autriche",
+ "Azerbaijan": "Azerbaïdjan",
+ "Bahamas": "Bahamas",
+ "Bahrain": "Bahreïn",
+ "Bangladesh": "Bangladesh",
+ "Barbados": "Barbade",
+ "Belarus": "Biélorussie",
+ "Belgium": "Belgique",
+ "Belize": "Belize",
+ "Benin": "Bénin",
+ "Bermuda": "Bermudes",
+ "Bhutan": "Bhoutan",
+ "Bolivia": "Bolivie",
+ "Bonaire, Sint Eustatius and Saba": "Pays-Bas caribéens",
+ "Bosnia And Herzegovina": "Bosnie-Herzégovine",
+ "Botswana": "Botswana",
+ "Bouvet Island": "Île Bouvet",
+ "Brazil": "Brésil",
+ "British Indian Ocean Territory": "Territoire britannique de l’océan Indien",
+ "Brunei Darussalam": "Brunéi Darussalam",
+ "Bulgaria": "Bulgarie",
+ "Burkina Faso": "Burkina Faso",
+ "Burundi": "Burundi",
+ "Cambodia": "Cambodge",
+ "Cameroon": "Cameroun",
+ "Canada": "Canada",
+ "Cape Verde": "Cap-Vert",
+ "Cayman Islands": "Îles Caïmans",
+ "Central African Republic": "République centrafricaine",
+ "Chad": "Tchad",
+ "Chile": "Chili",
+ "China": "Chine",
+ "Christmas Island": "Île Christmas",
+ "Cocos (Keeling) Islands": "Îles Cocos",
+ "Colombia": "Colombie",
+ "Comoros": "Comores",
+ "Congo": "Congo-Brazzaville",
+ "Congo, Democratic Republic": "Congo-Kinshasa",
+ "Cook Islands": "Îles Cook",
+ "Costa Rica": "Costa Rica",
+ "Cote D'Ivoire": "Côte d’Ivoire",
+ "Croatia": "Croatie",
+ "Cuba": "Cuba",
+ "Curaçao": "Curaçao",
+ "Cyprus": "Chypre",
+ "Czech Republic": "Tchéquie",
+ "Denmark": "Danemark",
+ "Djibouti": "Djibouti",
+ "Dominica": "Dominique",
+ "Dominican Republic": "République dominicaine",
+ "Ecuador": "Équateur",
+ "Egypt": "Égypte",
+ "El Salvador": "Salvador",
+ "Equatorial Guinea": "Guinée équatoriale",
+ "Eritrea": "Érythrée",
+ "Estonia": "Estonie",
+ "Ethiopia": "Éthiopie",
+ "Falkland Islands (Malvinas)": "Îles Malouines",
+ "Faroe Islands": "Îles Féroé",
+ "Fiji": "Fidji",
+ "Finland": "Finlande",
+ "France": "France",
+ "French Guiana": "Guyane française",
+ "French Polynesia": "Polynésie française",
+ "French Southern Territories": "Terres australes françaises",
+ "Gabon": "Gabon",
+ "Gambia": "Gambie",
+ "Georgia": "Géorgie",
+ "Germany": "Allemagne",
+ "Ghana": "Ghana",
+ "Gibraltar": "Gibraltar",
+ "Greece": "Grèce",
+ "Greenland": "Groenland",
+ "Grenada": "Grenade",
+ "Guadeloupe": "Guadeloupe",
+ "Guam": "Guam",
+ "Guatemala": "Guatemala",
+ "Guernsey": "Guernesey",
+ "Guinea": "Guinée",
+ "Guinea-Bissau": "Guinée-Bissau",
+ "Guyana": "Guyana",
+ "Haiti": "Haïti",
+ "Heard Island & Mcdonald Islands": "Îles Heard et McDonald",
+ "Holy See (Vatican City State)": "État de la Cité du Vatican",
+ "Honduras": "Honduras",
+ "Hong Kong": "R.A.S. chinoise de Hong Kong",
+ "Hungary": "Hongrie",
+ "Iceland": "Islande",
+ "India": "Inde",
+ "Indonesia": "Indonésie",
+ "Iran, Islamic Republic Of": "Iran",
+ "Iraq": "Irak",
+ "Ireland": "Irlande",
+ "Isle Of Man": "Île de Man",
+ "Israel": "Israël",
+ "Italy": "Italie",
+ "Jamaica": "Jamaïque",
+ "Japan": "Japon",
+ "Jersey": "Jersey",
+ "Jordan": "Jordanie",
+ "Kazakhstan": "Kazakhstan",
+ "Kenya": "Kenya",
+ "Kiribati": "Kiribati",
+ "Korea, Democratic People's Republic of": "Corée du Nord",
+ "Korea": "Corée du Sud",
+ "Kosovo": "Kosovo",
+ "Kuwait": "Koweït",
+ "Kyrgyzstan": "Kirghizistan",
+ "Lao People's Democratic Republic": "Laos",
+ "Latvia": "Lettonie",
+ "Lebanon": "Liban",
+ "Lesotho": "Lesotho",
+ "Liberia": "Libéria",
+ "Libyan Arab Jamahiriya": "Libye",
+ "Liechtenstein": "Liechtenstein",
+ "Lithuania": "Lituanie",
+ "Luxembourg": "Luxembourg",
+ "Macao": "R.A.S. chinoise de Macao",
+ "Macedonia": "Macédoine du Nord",
+ "Madagascar": "Madagascar",
+ "Malawi": "Malawi",
+ "Malaysia": "Malaisie",
+ "Maldives": "Maldives",
+ "Mali": "Mali",
+ "Malta": "Malte",
+ "Marshall Islands": "Îles Marshall",
+ "Martinique": "Martinique",
+ "Mauritania": "Mauritanie",
+ "Mauritius": "Maurice",
+ "Mayotte": "Mayotte",
+ "Mexico": "Mexique",
+ "Micronesia, Federated States Of": "États fédérés de Micronésie",
+ "Moldova": "Moldavie",
+ "Monaco": "Monaco",
+ "Mongolia": "Mongolie",
+ "Montenegro": "Monténégro",
+ "Montserrat": "Montserrat",
+ "Morocco": "Maroc",
+ "Mozambique": "Mozambique",
+ "Myanmar": "Myanmar (Birmanie)",
+ "Namibia": "Namibie",
+ "Nauru": "Nauru",
+ "Nepal": "Népal",
+ "Netherlands": "Pays-Bas",
+ "New Caledonia": "Nouvelle-Calédonie",
+ "New Zealand": "Nouvelle-Zélande",
+ "Nicaragua": "Nicaragua",
+ "Niger": "Niger",
+ "Nigeria": "Nigéria",
+ "Niue": "Niue",
+ "Norfolk Island": "Île Norfolk",
+ "Northern Mariana Islands": "Îles Mariannes du Nord",
+ "Norway": "Norvège",
+ "Oman": "Oman",
+ "Pakistan": "Pakistan",
+ "Palau": "Palaos",
+ "Palestinian Territory, Occupied": "Territoires palestiniens",
+ "Panama": "Panama",
+ "Papua New Guinea": "Papouasie-Nouvelle-Guinée",
+ "Paraguay": "Paraguay",
+ "Peru": "Pérou",
+ "Philippines": "Philippines",
+ "Pitcairn": "Îles Pitcairn",
+ "Poland": "Pologne",
+ "Portugal": "Portugal",
+ "Puerto Rico": "Porto Rico",
+ "Qatar": "Qatar",
+ "Reunion": "La Réunion",
+ "Romania": "Roumanie",
+ "Russian Federation": "Russie",
+ "Rwanda": "Rwanda",
+ "Saint Barthelemy": "Saint-Barthélemy",
+ "Saint Helena": "Sainte-Hélène",
+ "Saint Kitts And Nevis": "Saint-Christophe-et-Niévès",
+ "Saint Lucia": "Sainte-Lucie",
+ "Saint Martin": "Saint-Martin",
+ "Saint Pierre And Miquelon": "Saint-Pierre-et-Miquelon",
+ "Saint Vincent And Grenadines": "Saint-Vincent-et-les-Grenadines",
+ "Samoa": "Samoa",
+ "San Marino": "Saint-Marin",
+ "Sao Tome And Principe": "Sao Tomé-et-Principe",
+ "Saudi Arabia": "Arabie saoudite",
+ "Senegal": "Sénégal",
+ "Serbia": "Serbie",
+ "Seychelles": "Seychelles",
+ "Sierra Leone": "Sierra Leone",
+ "Singapore": "Singapour",
+ "Sint Maarten (Dutch part)": "Saint-Martin (partie néerlandaise)",
+ "Slovakia": "Slovaquie",
+ "Slovenia": "Slovénie",
+ "Solomon Islands": "Îles Salomon",
+ "Somalia": "Somalie",
+ "South Africa": "Afrique du Sud",
+ "South Georgia And Sandwich Isl.": "Géorgie du Sud et îles Sandwich du Sud",
+ "South Sudan": "Soudan du Sud",
+ "Spain": "Espagne",
+ "Sri Lanka": "Sri Lanka",
+ "Sudan": "Soudan",
+ "Suriname": "Suriname",
+ "Svalbard And Jan Mayen": "Svalbard et Jan Mayen",
+ "Swaziland": "Eswatini",
+ "Sweden": "Suède",
+ "Switzerland": "Suisse",
+ "Syrian Arab Republic": "Syrie",
+ "Taiwan": "Taïwan",
+ "Tajikistan": "Tadjikistan",
+ "Tanzania": "Tanzanie",
+ "Thailand": "Thaïlande",
+ "Timor-Leste": "Timor oriental",
+ "Togo": "Togo",
+ "Tokelau": "Tokelau",
+ "Tonga": "Tonga",
+ "Trinidad And Tobago": "Trinité-et-Tobago",
+ "Tunisia": "Tunisie",
+ "Turkey": "Turquie",
+ "Turkmenistan": "Turkménistan",
+ "Turks And Caicos Islands": "Îles Turques-et-Caïques",
+ "Tuvalu": "Tuvalu",
+ "Uganda": "Ouganda",
+ "Ukraine": "Ukraine",
+ "United Arab Emirates": "Émirats arabes unis",
+ "United Kingdom": "Royaume-Uni",
+ "United States": "États-Unis",
+ "United States Outlying Islands": "Îles mineures éloignées des États-Unis",
+ "Uruguay": "Uruguay",
+ "Uzbekistan": "Ouzbékistan",
+ "Vanuatu": "Vanuatu",
+ "Venezuela": "Venezuela",
+ "Viet Nam": "Vietnam",
+ "Virgin Islands, British": "Îles Vierges britanniques",
+ "Virgin Islands, U.S.": "Îles Vierges des États-Unis",
+ "Wallis And Futuna": "Wallis-et-Futuna",
+ "Western Sahara": "Sahara occidental",
+ "Yemen": "Yémen",
+ "Zambia": "Zambie",
+ "Zimbabwe": "Zimbabwe",
+ "Yes": "Oui",
+ "No": "Non",
+ "Action Name": "Nom",
+ "Action Initiated By": "Initiateur",
+ "Action Target": "Cible",
+ "Action Status": "Statut",
+ "Action Happened At": "Heure et date",
+ "resource": "ressource",
+ "resources": "ressources",
+ "Choose date": "Choisissez une date",
+ "The :resource was updated!": "La ressource :resource a été enregistrée !",
+ "The resource was updated!": "La ressource a été enregistrée !",
+ "The :resource was deleted!": "La ressource :resource a été supprimée !",
+ "The :resource was restored!": "La ressource :resource a été restaurée !",
+ "Increase": "Augmentation",
+ "Constant": "Constant",
+ "Decrease": "Diminution",
+ "Reset Password Notification": "Réinitialisation du mot de passe",
+ "Nova User": "Nova Utilisateur",
+ "of": "de",
+ "no file selected": "pas de fichier sélectionné",
+ "Sorry, your session has expired.": "Désolé, votre session a expiré.",
+ "Reload": "Recharger",
+ "Key": "Clé",
+ "Value": "Valeur",
+ "Add row": "Ajouter une ligne",
+ "Attach :resource": "Attache :resource",
+ "Create :resource": "Créer :resource",
+ "Choose :resource": "Choisir :resource",
+ "New :resource": "Nouveau",
+ "Edit :resource": "Modifier :resource",
+ "Update :resource": "Enregistrer :resource",
+ "Choose :field": "Choisir :field",
+ "Download": "Télécharger",
+ "Action": "Action",
+ "Changes": "Modifications",
+ "Original": "Original",
+ "This resource no longer exists": "Cette ressource n’existe plus",
+ ":resource Details": "Détails :resource",
+ "There are no available options for this resource.": "Il n’y a pas d’options disponibles pour cette ressource.",
+ "All resources loaded.": "Toutes les ressources ont été chargées.",
+ "Load :perPage More": "Charger :perPage de plus",
+ ":amount Total": ":amount au total",
+ "Show All Fields": "Voir tous les champs",
+ "There was a problem submitting the form.": "Un problème est survenu lors de l’envoi du formulaire.",
+ "There was a problem executing the action.": "Un problème est survenu lors de l’exécution de l’action.",
+ "The file was deleted!": "Le fichier a été supprimé !"
+}
\ No newline at end of file
--- /dev/null
+<?php
+
+return [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines contain the default error messages used by
+ | the validator class. Some of these rules have multiple versions such
+ | as the size rules. Feel free to tweak each of these messages here.
+ |
+ */
+
+ 'attached' => ':attribute est déjà attaché.',
+ 'relatable' => ':attribute ne peut pas être associé avec cette ressource.',
+
+];