Compare commits

..

17 Commits

Author SHA1 Message Date
Miguel Nogueira 66147e0ba3
Merge pull request #11 from spacejewel-hosting/l10n_translate
Add Spanish and French (Machine translation)
2020-09-04 22:08:19 +01:00
Miguel Nogueira ccd5d1df2b New translations messages.php (Spanish) 2020-09-04 22:07:13 +01:00
Miguel Nogueira 02b7905a97 New translations messages.php (Spanish) 2020-09-04 22:00:57 +01:00
Miguel Nogueira ac27c2e5ce New translations menu.php (French) 2020-09-04 21:02:32 +01:00
Miguel Nogueira 2be0084463 New translations messages.php (Spanish) 2020-09-04 21:02:30 +01:00
Miguel Nogueira 34c830bc8d New translations adminlte.php (Spanish) 2020-09-04 21:02:29 +01:00
Miguel Nogueira abaf00e427 New translations menu.php (Spanish) 2020-09-04 21:02:27 +01:00
Miguel Nogueira 74e576d318 New translations auth.php (French) 2020-09-04 21:02:21 +01:00
Miguel Nogueira 584d8e703a New translations adminlte.php (French) 2020-09-04 21:02:20 +01:00
Miguel Nogueira 0230042c1a New translations auth.php (Spanish) 2020-09-04 21:02:18 +01:00
Miguel Nogueira 22f698bd1d New translations pagination.php (French) 2020-09-04 21:02:17 +01:00
Miguel Nogueira abfbd82e23 New translations pagination.php (Spanish) 2020-09-04 21:02:16 +01:00
Miguel Nogueira a8648a9b50 New translations passwords.php (French) 2020-09-04 21:02:13 +01:00
Miguel Nogueira 5c57a5185f New translations passwords.php (Spanish) 2020-09-04 21:02:12 +01:00
Miguel Nogueira 0e8b3d28a6 New translations validation.php (French) 2020-09-04 21:02:10 +01:00
Miguel Nogueira 3c966036d9 New translations validation.php (Spanish) 2020-09-04 21:02:08 +01:00
Miguel Nogueira a5e1ab5af8 New translations messages.php (French) 2020-09-04 21:02:06 +01:00
30 changed files with 1145 additions and 1400 deletions

View File

@ -21,6 +21,9 @@ RECAPTCHA_PRIVATE_KEY=
RECAPTCHA_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify" RECAPTCHA_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify"
# WARNING: Your contact form will be useless if you change this value. Only change this URL if Google updates it. # WARNING: Your contact form will be useless if you change this value. Only change this URL if Google updates it.
IPGEO_API_KEY=""
IPGEO_API_URL=""
MOJANG_STATUS_URL="https://status.mojang.com/check" MOJANG_STATUS_URL="https://status.mojang.com/check"
MOJANG_API_URL="https://api.mojang.com" MOJANG_API_URL="https://api.mojang.com"
@ -29,7 +32,7 @@ IPGEO_API_URL="https://api.ipgeolocation.io/ipgeo"
ARCANEDEV_LOGVIEWER_MIDDLEWARE=web,auth,can:admin.maintenance.logs.view ARCANEDEV_LOGVIEWER_MIDDLEWARE=web,auth,can:admin.maintenance.logs.view
RELEASE=staffmanagement@0.6.1 RELEASE=staffmanagement@0.2.0
SLACK_INTEGRATION_WEBHOOK= SLACK_INTEGRATION_WEBHOOK=
@ -65,8 +68,4 @@ PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
# Mostly for developers, but with Papertrail, you can easily see what the app's users are doing without relying on
# the internal log viewer.
SENTRY_LARAVEL_DSN= SENTRY_LARAVEL_DSN=
PAPERTRAIL_URL=
PAPERTRAIL_PORT

View File

@ -1,76 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at support@spacejewel-hosting.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

View File

@ -1,29 +0,0 @@
# Thank you for contributing!
Read this file carefully before contributing to the project. It's important that everyone follows these rules to ensure smooth contribution.
## General workflow
Since the project is under version 1.0.0, the master branch can be quite unstable, and even unusable. For this reason, I recommend you stick to the published
releases, unless you intend on helping out with the project.
New features are commited directly to the ``master`` branch, while translations are commited to a special service branch, merged onto ``translate``, tested, and
merged back to master. Above version 1.0.0, new features should follow the same procedure as translations.
## Before commiting
Before commiting, make sure your code adheres to the Laravel coding guidelines, as well as PSR-4. I'll personally review and merge each PR.
Thank you for your interest!
# Bug reports
As always, bug reports should stick to the bug report template. GitHub makes this easy for you by letting you choose which issue template you'd like to use
before reporting an isuse. This helps everyone stay in the same page.
Issues published without a template might take longer to be resolved, or may be ignored and marked ``wontfix``.
# Licensing
Any contributions you make will be under the GNU GPL v3 license, which is the license that covers this project.

View File

@ -1,6 +1,6 @@
# RB Recruiter v 0.6.2 [![Crowdin](https://badges.crowdin.net/raspberry-staff-manager/localized.svg)](https://crowdin.com/project/raspberry-staff-manager) # Raspberry Teams - The Simple Staff Application Manager v 0.1.0 [![Crowdin](https://badges.crowdin.net/raspberry-staff-manager/localized.svg)](https://crowdin.com/project/raspberry-staff-manager)
## The quick and pain-free form management solution for communities ## The quick and pain-free staff application manager
Have you ever gotten tired of managing your Minecraft server/network's applications through Discord (or anything else) and having to scroll through hundreds of new messages just to find that one applicant's username? Have you ever gotten tired of managing your Minecraft server/network's applications through Discord (or anything else) and having to scroll through hundreds of new messages just to find that one applicant's username?
@ -48,14 +48,6 @@ Tech stack:
- jQuery / Plain Javascript - jQuery / Plain Javascript
- vueJS (in the future) - vueJS (in the future)
# Stability
Currently, the ``master`` branch is highly unstable, since it's under active development. Expect it to break with each commit. Even though I make an effort to make sure each commit is good to go before pushing, things might still break unexpectedly, and you may find a lot of bugs (which you should report).
Every released version is currently pre-release. If you really want to run this before version ``1.0.0`` comes out, always stay on the latest version, as those will always be tested before release, ensuring less chaos.
*Note: This application is NOT production ready! It won't be until the first stable release comes out, which might take a bit longer.
# Operating System Requirements # Operating System Requirements
Currently, this application is only supported on Linux environments (Ubuntu 20.04 or derivatives are recommended). Currently, this application is only supported on Linux environments (Ubuntu 20.04 or derivatives are recommended).

View File

@ -1,19 +0,0 @@
# Security Policy
## Supported Versions
The following versions are currently supported:
| Version | Supported |
| ------- | ------------------ |
| 0.1.x | :x: |
| 0.5.x | :x: |
| 0.6.x | :white_check_mark: |
## Reporting a Vulnerability
To securely report a vulnerability, you may send me an email directly containing the details of said vulnerability: ``me@nogueira.codes``.
You may optionally encrypt your message with my [public PGP key](http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x48DF709E7405702B).
Use this free [online encryption tool](https://www.igolder.com/pgp/encryption/) if you don't know how to use PGP on your desktop.

View File

@ -17,10 +17,6 @@ class Ban extends Model
]; ];
public $dates = [
'bannedUntil'
];
public function user() public function user()
{ {
return $this->belongsTo('App\User', 'userID', 'id'); return $this->belongsTo('App\User', 'userID', 'id');

View File

@ -99,16 +99,12 @@ class Install extends Command
$settings['MAIL_PASSWORD'] = $this->secret('SMTP Password (Input won\'t be seen)'); $settings['MAIL_PASSWORD'] = $this->secret('SMTP Password (Input won\'t be seen)');
$settings['MAIL_PORT'] = $this->ask('SMTP Server Port'); $settings['MAIL_PORT'] = $this->ask('SMTP Server Port');
$settings['MAIL_HOST'] = $this->ask('SMTP Server Hostname'); $settings['MAIL_HOST'] = $this->ask('SMTP Server Hostname');
$settings['MAIL_FROM_ADDRESS'] = $this->ask('E-mail address to send from');
$this->info('== Notification Settings (5/6) (Slack) =='); $this->info('== Notification Settings (5/6) (Slack) ==');
$settings['SLACK_INTEGRATION_WEBHOOK'] = $this->ask('Integration webhook URL'); $settings['SLACK_INTEGRATION_WEBHOOK'] = $this->ask('Integration webhook URL');
$this->info('== Web Settings (6/6) =='); $this->info('== Web Settings (6/6) ==');
$settings['APP_URL'] = $this->ask('Application\'s URL (ex. https://where.you.installed.theapp.com): '); $settings['APP_URL'] = $this->ask('Application\'s URL');
$settings['APP_LOGO'] = $this->ask('App logo (Link to an image): ');
$settings['APP_SITEHOMEPAGE'] = $this->ask('Site homepage (appears in the main header): ');
} while(!$this->confirm('Are you sure you want to save these settings? You can always go back and try again.')); } while(!$this->confirm('Are you sure you want to save these settings? You can always go back and try again.'));

View File

@ -15,7 +15,7 @@ class BanController extends Controller
public function insert(BanUserRequest $request, User $user) public function insert(BanUserRequest $request, User $user)
{ {
$this->authorize('create', [Ban::class, $user]); $this->authorize('create', Ban::class);
if (is_null($user->bans)) if (is_null($user->bans))
{ {
@ -50,13 +50,13 @@ class BanController extends Controller
else else
{ {
// Essentially permanent // Essentially permanent
$expiryDate->addYears(5); $expiryDate->addYears(100);
} }
$ban = Ban::create([ $ban = Ban::create([
'userID' => $user->id, 'userID' => $user->id,
'reason' => $reason, 'reason' => $reason,
'bannedUntil' => $expiryDate->format('Y-m-d H:i:s'), 'bannedUntil' => $expiryDate->toDateTimeString() ?? null,
'userAgent' => "Unknown", 'userAgent' => "Unknown",
'authorUserID' => Auth::user()->id 'authorUserID' => Auth::user()->id
]); ]);

View File

@ -7,7 +7,6 @@ use App\Options as Option;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
class OptionsController extends Controller class OptionsController extends Controller
{ {
@ -30,33 +29,17 @@ class OptionsController extends Controller
{ {
if (Auth::user()->can('admin.settings.edit')) if (Auth::user()->can('admin.settings.edit'))
{ {
Log::debug('Updating application options', [
'ip' => $request->ip(),
'ua' => $request->userAgent(),
'username' => Auth::user()->username
]);
foreach($request->all() as $optionName => $option) foreach($request->all() as $optionName => $option)
{ {
try try
{ {
Log::debug('Going through option ' . $optionName); if (Options::optionExists($option))
if (Options::optionExists($optionName))
{ {
Log::debug('Option exists, updating to new values', [
'opt' => $optionName,
'new_value' => $option
]);
Options::changeOption($optionName, $option); Options::changeOption($optionName, $option);
} }
} }
catch(\Exception $ex) catch(\Exception $ex)
{ {
Log::error('Unable to update options!', [
'msg' => $ex->getMessage(),
'trace' => $ex->getTraceAsString()
]);
report($ex);
$errorCond = true; $errorCond = true;
$request->session()->flash('error', 'An error occurred while trying to save settings: ' . $ex->getMessage()); $request->session()->flash('error', 'An error occurred while trying to save settings: ' . $ex->getMessage());
} }

View File

@ -27,7 +27,7 @@ class BanUserRequest extends FormRequest
{ {
return [ return [
'reason' => 'required|string', 'reason' => 'required|string',
'durationOperand' => 'nullable|string', 'durationOperand' => 'nullable|integer',
'durationOperator' => 'nullable|string' 'durationOperator' => 'nullable|string'
]; ];
} }

View File

@ -1,45 +0,0 @@
<?php
namespace App\Listeners;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Log;
class LogAuthenticationFailure
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle($event)
{
$targetAccountID = 0;
$originalIP = "0.0.0.0";
if (isset($event->user->id))
{
$targetAccountID = $event->user->id;
}
Log::alert('SECURITY (login): Detected failed authentication attempt!', [
'targetAccountID' => $targetAccountID,
'existingAccount' => ($targetAccountID == 0) ? false : true,
'sourceIP' => request()->ip(),
'matchesAccountLastIP' => request()->ip() == $originalIP,
'sourceUserAgent' => request()->userAgent(),
]);
}
}

View File

@ -1,36 +0,0 @@
<?php
namespace App\Listeners;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Log;
class LogAuthenticationSuccess
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle($event)
{
Log::info('SECURITY (postauth-pre2fa): Detected successful login attempt', [
'accountID' => $event->user->id,
'sourceIP' => request()->ip(),
'matchesAccountLastIP' => request()->ip() == $event->user->originalIP,
'sourceUserAgent' => request()->userAgent(),
]);
}
}

View File

@ -3,7 +3,6 @@
namespace App\Observers; namespace App\Observers;
use App\Application; use App\Application;
use Illuminate\Support\Facades\Log;
class ApplicationObserver class ApplicationObserver
{ {

View File

@ -39,18 +39,17 @@ class BanPolicy
* Determine whether the user can create models. * Determine whether the user can create models.
* *
* @param \App\User $user * @param \App\User $user
* @param User $targetUser
* @return mixed * @return mixed
*/ */
public function create(User $user, User $targetUser) public function create(User $user)
{ {
Log::debug("Authorization check started", [ Log::debug("Authorization check started", [
'requiredRoles' => 'admin', 'requiredRoles' => 'admin',
'currentRoles' => $user->roles(),
'hasRequiredRole' => $user->hasRole('admin'), 'hasRequiredRole' => $user->hasRole('admin'),
'targetUser' => $targetUser->username,
'isCurrentUser' => Auth::user()->is($user) 'isCurrentUser' => Auth::user()->is($user)
]); ]);
return $user->hasRole('admin') && $user->isNot($targetUser); return $user->hasRole('admin') && Auth::user()->isNot($user);
} }
/** /**

View File

@ -2,8 +2,6 @@
namespace App\Providers; namespace App\Providers;
use App\Application;
use App\Observers\ApplicationObserver;
use App\Observers\UserObserver; use App\Observers\UserObserver;
use App\User; use App\User;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
@ -34,9 +32,7 @@ class AppServiceProvider extends ServiceProvider
]); ]);
Schema::defaultStringLength(191); Schema::defaultStringLength(191);
User::observe(UserObserver::class); User::observe(UserObserver::class);
Application::observe(ApplicationObserver::class);
$this->app['request']->server->set('HTTPS', $this->app->environment() != 'local'); $this->app['request']->server->set('HTTPS', $this->app->environment() != 'local');
} }

View File

@ -2,11 +2,7 @@
namespace App\Providers; namespace App\Providers;
use App\Listeners\LogAuthenticationFailure;
use App\Listeners\LogAuthenticationSuccess;
use App\Listeners\OnUserRegistration; use App\Listeners\OnUserRegistration;
use Illuminate\Auth\Events\Failed;
use Illuminate\Auth\Events\Login;
use Illuminate\Auth\Events\Registered; use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification; use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
@ -24,12 +20,6 @@ class EventServiceProvider extends ServiceProvider
SendEmailVerificationNotification::class, SendEmailVerificationNotification::class,
OnUserRegistration::class OnUserRegistration::class
], ],
Failed::class => [
LogAuthenticationFailure::class
],
Login::class => [
LogAuthenticationSuccess::class
],
'App\Events\ApplicationApprovedEvent' => [ 'App\Events\ApplicationApprovedEvent' => [
'App\Listeners\PromoteUser' 'App\Listeners\PromoteUser'
], ],

View File

@ -13,7 +13,7 @@ return [
| |
*/ */
'failed' => 'These credentials do not match our records.', 'failed' => 'Estas credenciales no coinciden con nuestros registros.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 'throttle' => 'Demasiados intentos de inicio de sesión. Por favor, inténtalo de nuevo en :seconds segundos.',
]; ];

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ return [
| |
*/ */
'previous' => '&laquo; Previous', 'previous' => '&laquo; Anterior',
'next' => 'Next &raquo;', 'next' => 'Siguiente &raquo;',
]; ];

View File

@ -13,10 +13,10 @@ return [
| |
*/ */
'reset' => 'Your password has been reset!', 'reset' => '¡Tu contraseña ha sido restablecida!',
'sent' => 'We have emailed your password reset link!', 'sent' => '¡Hemos enviado por correo electrónico tu enlace de restablecimiento de contraseña!',
'throttled' => 'Please wait before retrying.', 'throttled' => 'Por favor, espere antes de reintentar.',
'token' => 'This password reset token is invalid.', 'token' => 'Este token de restablecimiento de contraseña no es válido.',
'user' => "We can't find a user with that email address.", 'user' => "No podemos encontrar un usuario con esa dirección de correo electrónico.",
]; ];

View File

@ -13,110 +13,110 @@ return [
| |
*/ */
'accepted' => 'The :attribute must be accepted.', 'accepted' => 'El campo :attribute debe ser aceptado.',
'active_url' => 'The :attribute is not a valid URL.', 'active_url' => ':attribute no es una URL válida.',
'after' => 'The :attribute must be a date after :date.', 'after' => ':attribute debe ser una fecha posterior a :date.',
'after_or_equal' => 'The :attribute must be a date after or equal to :date.', 'after_or_equal' => ':attribute debe ser una fecha posterior o igual a :date.',
'alpha' => 'The :attribute may only contain letters.', 'alpha' => ':attribute sólo puede contener letras.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.', 'alpha_dash' => ':attribute sólo puede contener letras, números, guiones y guiones bajos.',
'alpha_num' => 'The :attribute may only contain letters and numbers.', 'alpha_num' => ':attribute sólo puede contener letras y números.',
'array' => 'The :attribute must be an array.', 'array' => 'El campo :attribute debe ser un array.',
'before' => 'The :attribute must be a date before :date.', 'before' => ':attribute debe ser una fecha anterior a :date.',
'before_or_equal' => 'The :attribute must be a date before or equal to :date.', 'before_or_equal' => ':attribute debe ser una fecha anterior o igual a :date.',
'between' => [ 'between' => [
'numeric' => 'The :attribute must be between :min and :max.', 'numeric' => ':attribute debe estar entre :min y :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.', 'file' => ':attribute debe estar entre :min y :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.', 'string' => ':attribute debe tener entre :min y :max caracteres.',
'array' => 'The :attribute must have between :min and :max items.', 'array' => ':attribute debe tener entre :min y :max elementos.',
], ],
'boolean' => 'The :attribute field must be true or false.', 'boolean' => 'El campo :attribute debe ser verdadero o falso.',
'confirmed' => 'The :attribute confirmation does not match.', 'confirmed' => 'El :attribute de confirmación no coincide.',
'date' => 'The :attribute is not a valid date.', 'date' => ':attribute no es una fecha válida.',
'date_equals' => 'The :attribute must be a date equal to :date.', 'date_equals' => ':attribute debe ser una fecha igual a :date.',
'date_format' => 'The :attribute does not match the format :format.', 'date_format' => ':attribute no coincide con el formato :format.',
'different' => 'The :attribute and :other must be different.', 'different' => ':attribute y :other deben ser diferentes.',
'digits' => 'The :attribute must be :digits digits.', 'digits' => ':attribute debe tener :digits dígitos.',
'digits_between' => 'The :attribute must be between :min and :max digits.', 'digits_between' => ':attribute debe tener entre :min y :max dígitos.',
'dimensions' => 'The :attribute has invalid image dimensions.', 'dimensions' => 'El campo :attribute tiene dimensiones de imagen inválidas.',
'distinct' => 'The :attribute field has a duplicate value.', 'distinct' => 'El campo :attribute tiene un valor duplicado.',
'email' => 'The :attribute must be a valid email address.', 'email' => ':attribute debe ser una dirección de correo electrónico válida.',
'ends_with' => 'The :attribute must end with one of the following: :values.', 'ends_with' => 'El campo :attribute debe terminar con uno de los siguientes: :values.',
'exists' => 'The selected :attribute is invalid.', 'exists' => 'El :attribute seleccionado no es válido.',
'file' => 'The :attribute must be a file.', 'file' => ':attribute debe ser un archivo.',
'filled' => 'The :attribute field must have a value.', 'filled' => 'El campo :attribute debe tener un valor.',
'gt' => [ 'gt' => [
'numeric' => 'The :attribute must be greater than :value.', 'numeric' => 'El campo :attribute debe ser mayor que :value.',
'file' => 'The :attribute must be greater than :value kilobytes.', 'file' => ':attribute debe ser mayor que :value kilobytes.',
'string' => 'The :attribute must be greater than :value characters.', 'string' => ':attribute debe ser mayor que :value caracteres.',
'array' => 'The :attribute must have more than :value items.', 'array' => 'El campo :attribute debe tener más de :value items.',
], ],
'gte' => [ 'gte' => [
'numeric' => 'The :attribute must be greater than or equal :value.', 'numeric' => 'El campo :attribute debe ser mayor o igual a :value.',
'file' => 'The :attribute must be greater than or equal :value kilobytes.', 'file' => ':attribute debe ser mayor o igual a :value kilobytes.',
'string' => 'The :attribute must be greater than or equal :value characters.', 'string' => 'El campo :attribute debe ser mayor o igual a :value caracteres.',
'array' => 'The :attribute must have :value items or more.', 'array' => ':attribute debe tener :value o más.',
], ],
'image' => 'The :attribute must be an image.', 'image' => 'El campo :attribute debe ser una imagen.',
'in' => 'The selected :attribute is invalid.', 'in' => 'El :attribute seleccionado no es válido.',
'in_array' => 'The :attribute field does not exist in :other.', 'in_array' => 'El campo :attribute no existe en :other.',
'integer' => 'The :attribute must be an integer.', 'integer' => 'El campo :attribute debe ser un entero.',
'ip' => 'The :attribute must be a valid IP address.', 'ip' => ':attribute debe ser una dirección IP válida.',
'ipv4' => 'The :attribute must be a valid IPv4 address.', 'ipv4' => ':attribute debe ser una dirección IPv4 válida.',
'ipv6' => 'The :attribute must be a valid IPv6 address.', 'ipv6' => ':attribute debe ser una dirección IPv6 válida.',
'json' => 'The :attribute must be a valid JSON string.', 'json' => ':attribute debe ser una cadena JSON válida.',
'lt' => [ 'lt' => [
'numeric' => 'The :attribute must be less than :value.', 'numeric' => 'El campo :attribute debe ser menor que :value.',
'file' => 'The :attribute must be less than :value kilobytes.', 'file' => ':attribute debe ser menor que :value kilobytes.',
'string' => 'The :attribute must be less than :value characters.', 'string' => ':attribute debe tener menos de :value caracteres.',
'array' => 'The :attribute must have less than :value items.', 'array' => ':attribute debe tener menos de :value elementos.',
], ],
'lte' => [ 'lte' => [
'numeric' => 'The :attribute must be less than or equal :value.', 'numeric' => 'El campo :attribute debe ser menor o igual a :value.',
'file' => 'The :attribute must be less than or equal :value kilobytes.', 'file' => ':attribute debe ser menor o igual a :value kilobytes.',
'string' => 'The :attribute must be less than or equal :value characters.', 'string' => ':attribute debe ser menor o igual a :value caracteres.',
'array' => 'The :attribute must not have more than :value items.', 'array' => 'El campo :attribute no debe tener más de :value items.',
], ],
'max' => [ 'max' => [
'numeric' => 'The :attribute may not be greater than :max.', 'numeric' => ':attribute no puede ser mayor que :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.', 'file' => ':attribute no puede ser mayor que :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.', 'string' => ':attribute no puede ser mayor que :max caracteres.',
'array' => 'The :attribute may not have more than :max items.', 'array' => ':attribute no puede tener más de :max elementos.',
], ],
'mimes' => 'The :attribute must be a file of type: :values.', 'mimes' => 'El campo :attribute debe ser un archivo de tipo: :values.',
'mimetypes' => 'The :attribute must be a file of type: :values.', 'mimetypes' => 'El campo :attribute debe ser un archivo de tipo: :values.',
'min' => [ 'min' => [
'numeric' => 'The :attribute must be at least :min.', 'numeric' => ':attribute debe ser al menos :min.',
'file' => 'The :attribute must be at least :min kilobytes.', 'file' => ':attribute debe tener al menos :min kilobytes.',
'string' => 'The :attribute must be at least :min characters.', 'string' => ':attribute debe tener al menos :min caracteres.',
'array' => 'The :attribute must have at least :min items.', 'array' => ':attribute debe tener al menos :min items.',
], ],
'not_in' => 'The selected :attribute is invalid.', 'not_in' => 'El :attribute seleccionado no es válido.',
'not_regex' => 'The :attribute format is invalid.', 'not_regex' => 'El formato :attribute no es válido.',
'numeric' => 'The :attribute must be a number.', 'numeric' => ':attribute debe ser un número.',
'password' => 'The password is incorrect.', 'password' => 'La contraseña es incorrecta.',
'present' => 'The :attribute field must be present.', 'present' => 'El campo :attribute debe estar presente.',
'regex' => 'The :attribute format is invalid.', 'regex' => 'El formato :attribute no es válido.',
'required' => 'The :attribute field is required.', 'required' => 'El campo :attribute es obligatorio.',
'required_if' => 'The :attribute field is required when :other is :value.', 'required_if' => 'El campo :attribute es obligatorio cuando :other es :value.',
'required_unless' => 'The :attribute field is required unless :other is in :values.', 'required_unless' => 'El campo :attribute es obligatorio a menos que :other esté en :values.',
'required_with' => 'The :attribute field is required when :values is present.', 'required_with' => 'El campo :attribute es obligatorio cuando :values está presente.',
'required_with_all' => 'The :attribute field is required when :values are present.', 'required_with_all' => 'El campo :attribute es obligatorio cuando :values están presentes.',
'required_without' => 'The :attribute field is required when :values is not present.', 'required_without' => 'El campo :attribute es obligatorio cuando :values no está presente.',
'required_without_all' => 'The :attribute field is required when none of :values are present.', 'required_without_all' => 'El campo :attribute es obligatorio cuando ninguno de :values están presentes.',
'same' => 'The :attribute and :other must match.', 'same' => ':attribute y :other deben coincidir.',
'size' => [ 'size' => [
'numeric' => 'The :attribute must be :size.', 'numeric' => 'El campo :attribute debe ser :size.',
'file' => 'The :attribute must be :size kilobytes.', 'file' => ':attribute debe ser :size kilobytes.',
'string' => 'The :attribute must be :size characters.', 'string' => 'El campo :attribute debe tener :size caracteres.',
'array' => 'The :attribute must contain :size items.', 'array' => 'El campo :attribute debe contener :size items.',
], ],
'starts_with' => 'The :attribute must start with one of the following: :values.', 'starts_with' => 'El campo :attribute debe comenzar con uno de los siguientes: :values.',
'string' => 'The :attribute must be a string.', 'string' => 'El campo :attribute debe ser una cadena.',
'timezone' => 'The :attribute must be a valid zone.', 'timezone' => ':attribute debe ser una zona válida.',
'unique' => 'The :attribute has already been taken.', 'unique' => 'El atributo :attribute ya está en uso.',
'uploaded' => 'The :attribute failed to upload.', 'uploaded' => 'El atributo :attribute no se pudo cargar.',
'url' => 'The :attribute format is invalid.', 'url' => 'El formato :attribute no es válido.',
'uuid' => 'The :attribute must be a valid UUID.', 'uuid' => ':attribute debe ser un UUID válido.',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -131,7 +131,7 @@ return [
'custom' => [ 'custom' => [
'attribute-name' => [ 'attribute-name' => [
'rule-name' => 'custom-message', 'rule-name' => 'mensaje personalizado',
], ],
], ],

View File

@ -13,7 +13,7 @@ return [
| |
*/ */
'failed' => 'These credentials do not match our records.', 'failed' => 'Ces identifiants ne correspondent pas à nos enregistrements.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 'throttle' => 'Trop de tentatives de connexion. Veuillez réessayer dans :seconds secondes.',
]; ];

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ return [
| |
*/ */
'previous' => '&laquo; Previous', 'previous' => '&laquo; Précédent',
'next' => 'Next &raquo;', 'next' => 'Suivant &raquo;',
]; ];

View File

@ -13,10 +13,10 @@ return [
| |
*/ */
'reset' => 'Your password has been reset!', 'reset' => 'Votre mot de passe a été réinitialisé !',
'sent' => 'We have emailed your password reset link!', 'sent' => 'Nous avons envoyé un e-mail pour réinitialiser votre mot de passe!',
'throttled' => 'Please wait before retrying.', 'throttled' => 'Veuillez patienter avant de réessayer.',
'token' => 'This password reset token is invalid.', 'token' => 'Ce jeton de réinitialisation de mot de passe est invalide.',
'user' => "We can't find a user with that email address.", 'user' => "Nous ne pouvons pas trouver un utilisateur avec cette adresse e-mail.",
]; ];

View File

@ -13,110 +13,110 @@ return [
| |
*/ */
'accepted' => 'The :attribute must be accepted.', 'accepted' => 'L\'attribut :attribute doit être accepté.',
'active_url' => 'The :attribute is not a valid URL.', 'active_url' => 'Le champ :attribute n\'est pas une URL valide.',
'after' => 'The :attribute must be a date after :date.', 'after' => 'Le champ :attribute doit être une date après :date.',
'after_or_equal' => 'The :attribute must be a date after or equal to :date.', 'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale à :date.',
'alpha' => 'The :attribute may only contain letters.', 'alpha' => 'Le champ :attribute ne peut contenir que des lettres.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.', 'alpha_dash' => ':attribute ne peut contenir que des lettres, des chiffres, des tirets et des tirets bas.',
'alpha_num' => 'The :attribute may only contain letters and numbers.', 'alpha_num' => 'Le champ :attribute ne peut contenir que des lettres et des chiffres.',
'array' => 'The :attribute must be an array.', 'array' => ':attribute doit être un tableau.',
'before' => 'The :attribute must be a date before :date.', 'before' => 'Le champ :attribute doit être une date avant :date.',
'before_or_equal' => 'The :attribute must be a date before or equal to :date.', 'before_or_equal' => ':attribute doit être une date antérieure ou égale à :date.',
'between' => [ 'between' => [
'numeric' => 'The :attribute must be between :min and :max.', 'numeric' => 'Le champ :attribute doit être entre :min et :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.', 'file' => 'Le champ :attribute doit être compris entre :min et :max kilo-octets.',
'string' => 'The :attribute must be between :min and :max characters.', 'string' => 'Le champ :attribute doit contenir entre :min et :max caractères.',
'array' => 'The :attribute must have between :min and :max items.', 'array' => 'Le champ :attribute doit avoir entre :min et :max éléments.',
], ],
'boolean' => 'The :attribute field must be true or false.', 'boolean' => 'Le champ :attribute doit être vrai ou faux.',
'confirmed' => 'The :attribute confirmation does not match.', 'confirmed' => 'La confirmation de l\'attribut :attribute ne correspond pas.',
'date' => 'The :attribute is not a valid date.', 'date' => 'Le champ :attribute n\'est pas une date valide.',
'date_equals' => 'The :attribute must be a date equal to :date.', 'date_equals' => 'Le champ :attribute doit être une date égale à :date.',
'date_format' => 'The :attribute does not match the format :format.', 'date_format' => 'Le champ :attribute ne correspond pas au format :format.',
'different' => 'The :attribute and :other must be different.', 'different' => ':attribute et :other doivent être différents.',
'digits' => 'The :attribute must be :digits digits.', 'digits' => ':attribute doit être de :digits chiffres.',
'digits_between' => 'The :attribute must be between :min and :max digits.', 'digits_between' => 'Le champ :attribute doit contenir entre :min et :max chiffres.',
'dimensions' => 'The :attribute has invalid image dimensions.', 'dimensions' => ':attribute a des dimensions d\'image non valides.',
'distinct' => 'The :attribute field has a duplicate value.', 'distinct' => 'Le champ :attribute a une valeur en double.',
'email' => 'The :attribute must be a valid email address.', 'email' => 'Le champ :attribute doit être une adresse e-mail valide.',
'ends_with' => 'The :attribute must end with one of the following: :values.', 'ends_with' => ':attribute doit se terminer par un des :values suivantes.',
'exists' => 'The selected :attribute is invalid.', 'exists' => 'Le champ :attribute sélectionné est invalide.',
'file' => 'The :attribute must be a file.', 'file' => 'Le champ :attribute doit être un fichier.',
'filled' => 'The :attribute field must have a value.', 'filled' => 'Le champ :attribute doit avoir une valeur.',
'gt' => [ 'gt' => [
'numeric' => 'The :attribute must be greater than :value.', 'numeric' => 'Le champ :attribute doit être supérieur à :value.',
'file' => 'The :attribute must be greater than :value kilobytes.', 'file' => ':attribute doit être plus grand que :value kilo-octets.',
'string' => 'The :attribute must be greater than :value characters.', 'string' => 'Le champ :attribute doit être plus grand que :value caractères.',
'array' => 'The :attribute must have more than :value items.', 'array' => 'Le champ :attribute doit avoir plus de :value éléments.',
], ],
'gte' => [ 'gte' => [
'numeric' => 'The :attribute must be greater than or equal :value.', 'numeric' => 'Le champ :attribute doit être supérieur ou égal à :value.',
'file' => 'The :attribute must be greater than or equal :value kilobytes.', 'file' => ':attribute doit être supérieur ou égal à :value kilo-octets.',
'string' => 'The :attribute must be greater than or equal :value characters.', 'string' => 'Le champ :attribute doit être supérieur ou égal à :value caractères.',
'array' => 'The :attribute must have :value items or more.', 'array' => 'L\'attribut :attribute doit avoir :value éléments ou plus.',
], ],
'image' => 'The :attribute must be an image.', 'image' => 'Le champ :attribute doit être une image.',
'in' => 'The selected :attribute is invalid.', 'in' => 'Le champ :attribute sélectionné est invalide.',
'in_array' => 'The :attribute field does not exist in :other.', 'in_array' => 'Le champ :attribute n\'existe pas dans :other.',
'integer' => 'The :attribute must be an integer.', 'integer' => ':attribute doit être un nombre entier.',
'ip' => 'The :attribute must be a valid IP address.', 'ip' => 'Le champ :attribute doit être une adresse IP valide.',
'ipv4' => 'The :attribute must be a valid IPv4 address.', 'ipv4' => 'Le champ :attribute doit être une adresse IPv4 valide.',
'ipv6' => 'The :attribute must be a valid IPv6 address.', 'ipv6' => 'Le champ :attribute doit être une adresse IPv6 valide.',
'json' => 'The :attribute must be a valid JSON string.', 'json' => 'Le champ :attribute doit être une chaîne JSON valide.',
'lt' => [ 'lt' => [
'numeric' => 'The :attribute must be less than :value.', 'numeric' => 'Le champ :attribute doit être inférieur à :value.',
'file' => 'The :attribute must be less than :value kilobytes.', 'file' => ':attribute doit être inférieur à :value kilo-octets.',
'string' => 'The :attribute must be less than :value characters.', 'string' => 'Le champ :attribute doit être inférieur à :value caractères.',
'array' => 'The :attribute must have less than :value items.', 'array' => 'Le champ :attribute doit avoir moins de :value éléments.',
], ],
'lte' => [ 'lte' => [
'numeric' => 'The :attribute must be less than or equal :value.', 'numeric' => 'Le champ :attribute doit être inférieur ou égal à :value.',
'file' => 'The :attribute must be less than or equal :value kilobytes.', 'file' => ':attribute doit être inférieur ou égal à :value kilo-octets.',
'string' => 'The :attribute must be less than or equal :value characters.', 'string' => 'Le champ :attribute doit être inférieur ou égal à :value caractères.',
'array' => 'The :attribute must not have more than :value items.', 'array' => 'Le champ :attribute ne doit pas avoir plus de :value éléments.',
], ],
'max' => [ 'max' => [
'numeric' => 'The :attribute may not be greater than :max.', 'numeric' => 'Le champ :attribute ne peut pas être plus grand que :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.', 'file' => ':attribute ne doit pas être plus grand que :max kilo-octets.',
'string' => 'The :attribute may not be greater than :max characters.', 'string' => 'Le champ :attribute ne doit pas être plus grand que :max caractères.',
'array' => 'The :attribute may not have more than :max items.', 'array' => ':attribute ne peut pas avoir plus de :max éléments.',
], ],
'mimes' => 'The :attribute must be a file of type: :values.', 'mimes' => ':attribute doit être un fichier de type: :values.',
'mimetypes' => 'The :attribute must be a file of type: :values.', 'mimetypes' => ':attribute doit être un fichier de type: :values.',
'min' => [ 'min' => [
'numeric' => 'The :attribute must be at least :min.', 'numeric' => 'Le champ :attribute doit être d\'au moins :min.',
'file' => 'The :attribute must be at least :min kilobytes.', 'file' => 'Le champ :attribute doit être d\'au moins :min kilo-octets.',
'string' => 'The :attribute must be at least :min characters.', 'string' => 'Le champ :attribute doit contenir au moins :min caractères.',
'array' => 'The :attribute must have at least :min items.', 'array' => 'Le champ :attribute doit avoir au moins :min éléments.',
], ],
'not_in' => 'The selected :attribute is invalid.', 'not_in' => 'Le champ :attribute sélectionné est invalide.',
'not_regex' => 'The :attribute format is invalid.', 'not_regex' => 'Le format de l\'attribut :attribute est invalide.',
'numeric' => 'The :attribute must be a number.', 'numeric' => 'Le champ :attribute doit être un nombre.',
'password' => 'The password is incorrect.', 'password' => 'Le mot de passe est incorrect.',
'present' => 'The :attribute field must be present.', 'present' => 'Le champ :attribute doit être présent.',
'regex' => 'The :attribute format is invalid.', 'regex' => 'Le format de l\'attribut :attribute est invalide.',
'required' => 'The :attribute field is required.', 'required' => 'Le champ :attribute est requis.',
'required_if' => 'The :attribute field is required when :other is :value.', 'required_if' => 'Le champ :attribute est requis lorsque :other est :value.',
'required_unless' => 'The :attribute field is required unless :other is in :values.', 'required_unless' => 'Le champ :attribute est requis sauf si :other est en :values.',
'required_with' => 'The :attribute field is required when :values is present.', 'required_with' => 'Le champ :attribute est requis lorsque :values est présent.',
'required_with_all' => 'The :attribute field is required when :values are present.', 'required_with_all' => 'Le champ :attribute est requis lorsque :values sont présentes.',
'required_without' => 'The :attribute field is required when :values is not present.', 'required_without' => 'Le champ :attribute est requis lorsque :values n\'est pas présent.',
'required_without_all' => 'The :attribute field is required when none of :values are present.', 'required_without_all' => 'Le champ :attribute est requis quand aucun des :values n\'est présent.',
'same' => 'The :attribute and :other must match.', 'same' => ':attribute et :other doivent correspondre.',
'size' => [ 'size' => [
'numeric' => 'The :attribute must be :size.', 'numeric' => 'Le champ :attribute doit être :size.',
'file' => 'The :attribute must be :size kilobytes.', 'file' => ':attribute doit être de :size kilo-octets.',
'string' => 'The :attribute must be :size characters.', 'string' => 'Le champ :attribute doit être de :size caractères.',
'array' => 'The :attribute must contain :size items.', 'array' => ':attribute doit contenir :size éléments.',
], ],
'starts_with' => 'The :attribute must start with one of the following: :values.', 'starts_with' => ':attribute doit commencer par l\'un des :values suivants.',
'string' => 'The :attribute must be a string.', 'string' => 'Le champ :attribute doit être une chaîne.',
'timezone' => 'The :attribute must be a valid zone.', 'timezone' => 'Le champ :attribute doit être une zone valide.',
'unique' => 'The :attribute has already been taken.', 'unique' => 'Le champ :attribute a déjà été pris.',
'uploaded' => 'The :attribute failed to upload.', 'uploaded' => 'L\'attribut :attribute n\'a pas pu être envoyé.',
'url' => 'The :attribute format is invalid.', 'url' => 'Le format de l\'attribut :attribute est invalide.',
'uuid' => 'The :attribute must be a valid UUID.', 'uuid' => ':attribute doit être un UUID valide.',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -131,7 +131,7 @@ return [
'custom' => [ 'custom' => [
'attribute-name' => [ 'attribute-name' => [
'rule-name' => 'custom-message', 'rule-name' => 'message personnalisé',
], ],
], ],

View File

@ -2,27 +2,27 @@
return [ return [
'full_name' => 'Full name', 'full_name' => 'Nombre completo',
'email' => 'Email', 'email' => 'E-mail',
'password' => 'Password', 'password' => 'Contraseña',
'retype_password' => 'Retype password', 'retype_password' => 'Repetir contraseña',
'remember_me' => 'Remember Me', 'remember_me' => 'Recordarme',
'register' => 'Register', 'register' => 'Registrarse',
'register_a_new_membership' => 'Register a new membership', 'register_a_new_membership' => 'Registrar una nueva membresía',
'i_forgot_my_password' => 'I forgot my password', 'i_forgot_my_password' => 'Olvidé mi contraseña',
'i_already_have_a_membership' => 'I already have a membership', 'i_already_have_a_membership' => 'Ya tengo una membresía',
'sign_in' => 'Sign In', 'sign_in' => 'Iniciar sesión',
'log_out' => 'Log Out', 'log_out' => 'Cerrar sesión',
'toggle_navigation' => 'Toggle navigation', 'toggle_navigation' => 'Cambiar navegación',
'login_message' => 'Sign in to start your session', 'login_message' => 'Inicia sesión para iniciar tu sesión',
'register_message' => 'Register a new membership', 'register_message' => 'Registrar una nueva membresía',
'password_reset_message' => 'Reset Password', 'password_reset_message' => 'Restablecer contraseña',
'reset_password' => 'Reset Password', 'reset_password' => 'Restablecer contraseña',
'send_password_reset_link' => 'Send Password Reset Link', 'send_password_reset_link' => 'Enviar enlace de restablecimiento de contraseña',
'verify_message' => 'Your account needs verification', 'verify_message' => 'Tu cuenta necesita verificación',
'verify_email_sent' => 'A fresh verification link has been sent to your email address.', 'verify_email_sent' => 'Se ha enviado un nuevo enlace de verificación a tu dirección de correo electrónico.',
'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.', 'verify_check_your_email' => 'Antes de proceder, por favor revisa tu correo electrónico para ver un enlace de verificación.',
'verify_if_not_recieved' => 'If you did not receive the email', 'verify_if_not_recieved' => 'Si no recibiste el correo electrónico',
'verify_request_another' => 'click here to request another', 'verify_request_another' => 'haz clic aquí para solicitar otro',
'confirm_password_message' => 'Please, confirm your password to continue.', 'confirm_password_message' => 'Por favor, confirma tu contraseña para continuar.',
]; ];

View File

@ -2,31 +2,31 @@
return [ return [
'm_home' => 'Home', 'm_home' => 'Inicio',
'm_directory' => 'Directory', 'm_directory' => 'Directorio',
'h_applications' => 'Applications', 'h_applications' => 'Aplicaciones',
'm_my_applications' => 'My Applications', 'm_my_applications' => 'Mis Aplicaciones',
'm_curr_applications' => 'Current Applications', 'm_curr_applications' => 'Aplicaciones actuales',
'h_my_profile' => 'My Profile', 'h_my_profile' => 'Mi perfil',
'm_profile_settings' => 'Profile Settings', 'm_profile_settings' => 'Ajustes del perfil',
'm_account_settings' => 'My Account Settings', 'm_account_settings' => 'Ajustes de mi cuenta',
'h_app_management' => 'Application Management', 'h_app_management' => 'Gestión de aplicaciones',
'm_all_apps' => 'All Applications', 'm_all_apps' => 'Todas las aplicaciones',
'm_outstanding_apps' => 'Outstanding Applications', 'm_outstanding_apps' => 'Aplicaciones pendientes',
'm_interview_queue' => 'Interview Queue', 'm_interview_queue' => 'Cola de entrevistas',
'm_peer_approval' => 'Peer Approval Queue', 'm_peer_approval' => 'Cola de aprobación por pares',
'h_admin' => 'Administration', 'h_admin' => 'Administración',
'm_staff_m' => 'Staff Members', 'm_staff_m' => 'Miembros del personal',
'm_reg_players' => 'Registered Players', 'm_reg_players' => 'Jugadores registrados',
'sm_hiring_man' => 'Hiring Management', 'sm_hiring_man' => 'Gestión de contratación',
'm_open_pos' => 'Open Positions', 'm_open_pos' => 'Abrir posiciones',
'sm_forms' => 'Forms', 'sm_forms' => 'Formularios',
'sm_all_forms' => 'All Forms', 'sm_all_forms' => 'Todos los formularios',
'm_form_builder' => 'Form Builder', 'm_form_builder' => 'Constructor de Formularios',
'sm_app_settings' => 'App Settings', 'sm_app_settings' => 'Ajustes de app',
'm_global_app_s' => 'Global App Settings', 'm_global_app_s' => 'Configuración global de la aplicación',
'm_devtools' => 'Developer Tools', 'm_devtools' => 'Herramientas para desarrolladores',
'm_s_logs' => 'System Logs' 'm_s_logs' => 'Registros del sistema'
]; ];

View File

@ -2,27 +2,27 @@
return [ return [
'full_name' => 'Full name', 'full_name' => 'Nom complet',
'email' => 'Email', 'email' => 'Courriel',
'password' => 'Password', 'password' => 'Mot de passe',
'retype_password' => 'Retype password', 'retype_password' => 'Retapez le mot de passe',
'remember_me' => 'Remember Me', 'remember_me' => 'Se souvenir de moi',
'register' => 'Register', 'register' => 'Inscription',
'register_a_new_membership' => 'Register a new membership', 'register_a_new_membership' => 'Inscrire une nouvelle adhésion',
'i_forgot_my_password' => 'I forgot my password', 'i_forgot_my_password' => 'J\'ai oublié mon mot de passe',
'i_already_have_a_membership' => 'I already have a membership', 'i_already_have_a_membership' => 'J\'ai déjà une adhésion',
'sign_in' => 'Sign In', 'sign_in' => 'Se connecter',
'log_out' => 'Log Out', 'log_out' => 'Déconnexion',
'toggle_navigation' => 'Toggle navigation', 'toggle_navigation' => 'Basculer la navigation',
'login_message' => 'Sign in to start your session', 'login_message' => 'Connectez-vous pour démarrer votre session',
'register_message' => 'Register a new membership', 'register_message' => 'Inscrire une nouvelle adhésion',
'password_reset_message' => 'Reset Password', 'password_reset_message' => 'Réinitialiser le mot de passe',
'reset_password' => 'Reset Password', 'reset_password' => 'Réinitialiser le mot de passe',
'send_password_reset_link' => 'Send Password Reset Link', 'send_password_reset_link' => 'Envoyer le lien de réinitialisation du mot de passe',
'verify_message' => 'Your account needs verification', 'verify_message' => 'Votre compte a besoin d\'une vérification',
'verify_email_sent' => 'A fresh verification link has been sent to your email address.', 'verify_email_sent' => 'Un nouveau lien de vérification a été envoyé à votre adresse e-mail.',
'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.', 'verify_check_your_email' => 'Avant de continuer, veuillez vérifier votre e-mail pour un lien de vérification.',
'verify_if_not_recieved' => 'If you did not receive the email', 'verify_if_not_recieved' => 'Si vous n\'avez pas reçu l\'e-mail',
'verify_request_another' => 'click here to request another', 'verify_request_another' => 'cliquez ici pour en demander un autre',
'confirm_password_message' => 'Please, confirm your password to continue.', 'confirm_password_message' => 'Veuillez confirmer votre mot de passe pour continuer.',
]; ];

View File

@ -2,31 +2,31 @@
return [ return [
'm_home' => 'Home', 'm_home' => 'Domicile',
'm_directory' => 'Directory', 'm_directory' => 'Répertoire',
'h_applications' => 'Applications', 'h_applications' => 'Applications',
'm_my_applications' => 'My Applications', 'm_my_applications' => 'Mes applications',
'm_curr_applications' => 'Current Applications', 'm_curr_applications' => 'Applications actuelles',
'h_my_profile' => 'My Profile', 'h_my_profile' => 'Mon profil',
'm_profile_settings' => 'Profile Settings', 'm_profile_settings' => 'Paramètres du profil',
'm_account_settings' => 'My Account Settings', 'm_account_settings' => 'Paramètres de mon compte',
'h_app_management' => 'Application Management', 'h_app_management' => 'Gestion des applications',
'm_all_apps' => 'All Applications', 'm_all_apps' => 'Toutes les applications',
'm_outstanding_apps' => 'Outstanding Applications', 'm_outstanding_apps' => 'Applications en cours',
'm_interview_queue' => 'Interview Queue', 'm_interview_queue' => 'File d\'attente des entretiens',
'm_peer_approval' => 'Peer Approval Queue', 'm_peer_approval' => 'File d\'attente d\'approbation par les pairs',
'h_admin' => 'Administration', 'h_admin' => 'Administration',
'm_staff_m' => 'Staff Members', 'm_staff_m' => 'Membres du personnel',
'm_reg_players' => 'Registered Players', 'm_reg_players' => 'Joueurs enregistrés',
'sm_hiring_man' => 'Hiring Management', 'sm_hiring_man' => 'Gestion de l\'embauche',
'm_open_pos' => 'Open Positions', 'm_open_pos' => 'Positions ouvertes',
'sm_forms' => 'Forms', 'sm_forms' => 'Formulaires',
'sm_all_forms' => 'All Forms', 'sm_all_forms' => 'Tous les formulaires',
'm_form_builder' => 'Form Builder', 'm_form_builder' => 'Constructeur de formulaire',
'sm_app_settings' => 'App Settings', 'sm_app_settings' => 'Paramètres de l\'application',
'm_global_app_s' => 'Global App Settings', 'm_global_app_s' => 'Paramètres globaux de l\'application',
'm_devtools' => 'Developer Tools', 'm_devtools' => 'Outils de développement',
'm_s_logs' => 'System Logs' 'm_s_logs' => 'Journaux système'
]; ];