Skip to content

Commit

Permalink
add localization files for all supported languages
Browse files Browse the repository at this point in the history
fix login after g2fa
  • Loading branch information
BuyOwnEx committed Apr 3, 2021
1 parent 63c09f8 commit 5fd9cb4
Show file tree
Hide file tree
Showing 48 changed files with 2,325 additions and 6 deletions.
14 changes: 14 additions & 0 deletions app/Exceptions/Handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Http\Exceptions\ThrottleRequestsException;
use Illuminate\Http\Response;
use Illuminate\Session\TokenMismatchException;
use Illuminate\Support\Facades\Auth;
use Throwable;
Expand Down Expand Up @@ -52,6 +54,18 @@ public function report(Throwable $exception)
*/
public function render($request, Throwable $exception)
{
if($request->ajax())
{
if ($exception instanceof ThrottleRequestsException) {
return response()->json([
'success' => false,
'message' => 'Too Many Attempts.'
],
Response::HTTP_CONFLICT
);
}
}

return parent::render($request, $exception);
}
}
5 changes: 4 additions & 1 deletion app/Http/Controllers/Auth/LoginController.php
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ public function postValidateToken(ValidateSecretRequest $request)

//login and redirect user
Auth::loginUsingId($userId);
return redirect()->intended($this->redirectTo);
return response()->json([
'auth' => auth()->check(),
'intended' => $this->redirectPath(),
]);
}
}
7 changes: 6 additions & 1 deletion app/Http/Controllers/TicketController.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,12 @@ public function createTicket(Request $request)
'body' => $request->body
],
'priority' => $request->priority,
'requester_id'=> Auth::id()
'requester_id'=> Auth::id(),
'requester' => array(
'locale_id' => '1', // en TODO get locale from Auth::user()->language
'name' => Auth::user()->name,
'email' => Auth::user()->email,
),
]);
return ['success' => true, 'ticket' => $ticket];
}
Expand Down
1 change: 1 addition & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"guzzlehttp/guzzle": "^7.0",
"hisorange/browser-detect": "^4.4",
"huddledigital/zendesk-laravel": "^3.5",
"laravel-lang/lang": "~7.0",
"laravel/framework": "^7.24",
"laravel/sanctum": "^2.9",
"laravel/tinker": "^2.0",
Expand Down
43 changes: 42 additions & 1 deletion composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ export default {
form: {
subject: '',
body: '',
priority: 'medium',
priority: 'normal',
},
};
},
Expand All @@ -145,7 +145,7 @@ export default {
this.$nextTick(() => {
this.form.subject = '';
this.form.body = '';
this.form.priority = 'medium';
this.form.priority = 'normal';
this.$refs.form.resetValidation();
})
}
Expand Down
4 changes: 3 additions & 1 deletion resources/js/pages/auth/G2FA.vue
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@
.post('/2fa_validate', this.form)
.then(response => {
console.log(response.data);
//else this.$store.commit('snackbars/showSnackbar',{ text: response.data.message, success: false});
if(response.data.auth)
window.location.href=response.data.intended;
else this.$store.commit('snackbars/showSnackbar',{ text: response.data.message, success: false});
})
.catch(error => {
if (error.response.status === 422) {
Expand Down
18 changes: 18 additions & 0 deletions resources/lang/ar/auth.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?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' => 'بيانات الاعتماد هذه غير متطابقة مع البيانات المسجلة لدينا.',
'password' => 'كلمة المرور المستخدمة غير صحيحة.',
'throttle' => 'عدد كبير جدا من محاولات الدخول. يرجى المحاولة مرة أخرى بعد :seconds ثانية.',
];
17 changes: 17 additions & 0 deletions resources/lang/ar/pagination.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?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' => '&laquo; السابق',
'next' => 'التالي &raquo;',
];
20 changes: 20 additions & 0 deletions resources/lang/ar/passwords.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?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' => 'تمت إعادة تعيين كلمة المرور!',
'sent' => 'تم إرسال تفاصيل استعادة كلمة المرور الخاصة بك إلى بريدك الإلكتروني!',
'throttled' => 'الرجاء الانتظار قبل إعادة المحاولة.',
'token' => 'رمز استعادة كلمة المرور الذي أدخلته غير صحيح.',
'user' => 'لم يتم العثور على أيّ حسابٍ بهذا العنوان الإلكتروني.',
];
180 changes: 180 additions & 0 deletions resources/lang/ar/validation.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
<?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.
|
*/

'accepted' => 'يجب قبول :attribute.',
'active_url' => ':attribute لا يُمثّل رابطًا صحيحًا.',
'after' => 'يجب على :attribute أن يكون تاريخًا لاحقًا للتاريخ :date.',
'after_or_equal' => ':attribute يجب أن يكون تاريخاً لاحقاً أو مطابقاً للتاريخ :date.',
'alpha' => 'يجب أن لا يحتوي :attribute سوى على حروف.',
'alpha_dash' => 'يجب أن لا يحتوي :attribute سوى على حروف، أرقام ومطّات.',
'alpha_num' => 'يجب أن يحتوي :attribute على حروفٍ وأرقامٍ فقط.',
'array' => 'يجب أن يكون :attribute ًمصفوفة.',
'before' => 'يجب على :attribute أن يكون تاريخًا سابقًا للتاريخ :date.',
'before_or_equal' => ':attribute يجب أن يكون تاريخا سابقا أو مطابقا للتاريخ :date.',
'between' => [
'numeric' => 'يجب أن تكون قيمة :attribute بين :min و :max.',
'file' => 'يجب أن يكون حجم الملف :attribute بين :min و :max كيلوبايت.',
'string' => 'يجب أن يكون عدد حروف النّص :attribute بين :min و :max.',
'array' => 'يجب أن يحتوي :attribute على عدد من العناصر بين :min و :max.',
],
'boolean' => 'يجب أن تكون قيمة :attribute إما true أو false .',
'confirmed' => 'حقل التأكيد غير مُطابق للحقل :attribute.',
'date' => ':attribute ليس تاريخًا صحيحًا.',
'date_equals' => 'يجب أن يكون :attribute مطابقاً للتاريخ :date.',
'date_format' => 'لا يتوافق :attribute مع الشكل :format.',
'different' => 'يجب أن يكون الحقلان :attribute و :other مُختلفين.',
'digits' => 'يجب أن يحتوي :attribute على :digits رقمًا/أرقام.',
'digits_between' => 'يجب أن يحتوي :attribute بين :min و :max رقمًا/أرقام .',
'dimensions' => 'الـ :attribute يحتوي على أبعاد صورة غير صالحة.',
'distinct' => 'للحقل :attribute قيمة مُكرّرة.',
'email' => 'يجب أن يكون :attribute عنوان بريد إلكتروني صحيح البُنية.',
'ends_with' => 'يجب أن ينتهي :attribute بأحد القيم التالية: :values',
'exists' => 'القيمة المحددة :attribute غير موجودة.',
'file' => 'الـ :attribute يجب أن يكون ملفا.',
'filled' => ':attribute إجباري.',
'gt' => [
'numeric' => 'يجب أن تكون قيمة :attribute أكبر من :value.',
'file' => 'يجب أن يكون حجم الملف :attribute أكبر من :value كيلوبايت.',
'string' => 'يجب أن يكون طول النّص :attribute أكثر من :value حروفٍ/حرفًا.',
'array' => 'يجب أن يحتوي :attribute على أكثر من :value عناصر/عنصر.',
],
'gte' => [
'numeric' => 'يجب أن تكون قيمة :attribute مساوية أو أكبر من :value.',
'file' => 'يجب أن يكون حجم الملف :attribute على الأقل :value كيلوبايت.',
'string' => 'يجب أن يكون طول النص :attribute على الأقل :value حروفٍ/حرفًا.',
'array' => 'يجب أن يحتوي :attribute على الأقل على :value عُنصرًا/عناصر.',
],
'image' => 'يجب أن يكون :attribute صورةً.',
'in' => ':attribute غير موجود.',
'in_array' => ':attribute غير موجود في :other.',
'integer' => 'يجب أن يكون :attribute عددًا صحيحًا.',
'ip' => 'يجب أن يكون :attribute عنوان IP صحيحًا.',
'ipv4' => 'يجب أن يكون :attribute عنوان IPv4 صحيحًا.',
'ipv6' => 'يجب أن يكون :attribute عنوان IPv6 صحيحًا.',
'json' => 'يجب أن يكون :attribute نصًا من نوع JSON.',
'lt' => [
'numeric' => 'يجب أن تكون قيمة :attribute أصغر من :value.',
'file' => 'يجب أن يكون حجم الملف :attribute أصغر من :value كيلوبايت.',
'string' => 'يجب أن يكون طول النّص :attribute أقل من :value حروفٍ/حرفًا.',
'array' => 'يجب أن يحتوي :attribute على أقل من :value عناصر/عنصر.',
],
'lte' => [
'numeric' => 'يجب أن تكون قيمة :attribute مساوية أو أصغر من :value.',
'file' => 'يجب أن لا يتجاوز حجم الملف :attribute :value كيلوبايت.',
'string' => 'يجب أن لا يتجاوز طول النّص :attribute :value حروفٍ/حرفًا.',
'array' => 'يجب أن لا يحتوي :attribute على أكثر من :value عناصر/عنصر.',
],
'max' => [
'numeric' => 'يجب أن تكون قيمة :attribute مساوية أو أصغر من :max.',
'file' => 'يجب أن لا يتجاوز حجم الملف :attribute :max كيلوبايت.',
'string' => 'يجب أن لا يتجاوز طول النّص :attribute :max حروفٍ/حرفًا.',
'array' => 'يجب أن لا يحتوي :attribute على أكثر من :max عناصر/عنصر.',
],
'mimes' => 'يجب أن يكون ملفًا من نوع : :values.',
'mimetypes' => 'يجب أن يكون ملفًا من نوع : :values.',
'min' => [
'numeric' => 'يجب أن تكون قيمة :attribute مساوية أو أكبر من :min.',
'file' => 'يجب أن يكون حجم الملف :attribute على الأقل :min كيلوبايت.',
'string' => 'يجب أن يكون طول النص :attribute على الأقل :min حروفٍ/حرفًا.',
'array' => 'يجب أن يحتوي :attribute على الأقل على :min عُنصرًا/عناصر.',
],
'multiple_of' => ':attribute يجب أن يكون من مضاعفات :value',
'not_in' => 'العنصر :attribute غير صحيح.',
'not_regex' => 'صيغة :attribute غير صحيحة.',
'numeric' => 'يجب على :attribute أن يكون رقمًا.',
'password' => 'كلمة المرور غير صحيحة.',
'present' => 'يجب تقديم :attribute.',
'regex' => 'صيغة :attribute .غير صحيحة.',
'required' => ':attribute مطلوب.',
'required_if' => ':attribute مطلوب في حال ما إذا كان :other يساوي :value.',
'required_unless' => ':attribute مطلوب في حال ما لم يكن :other يساوي :values.',
'required_with' => ':attribute مطلوب إذا توفّر :values.',
'required_with_all' => ':attribute مطلوب إذا توفّر :values.',
'required_without' => ':attribute مطلوب إذا لم يتوفّر :values.',
'required_without_all' => ':attribute مطلوب إذا لم يتوفّر :values.',
'same' => 'يجب أن يتطابق :attribute مع :other.',
'size' => [
'numeric' => 'يجب أن تكون قيمة :attribute مساوية لـ :size.',
'file' => 'يجب أن يكون حجم الملف :attribute :size كيلوبايت.',
'string' => 'يجب أن يحتوي النص :attribute على :size حروفٍ/حرفًا بالضبط.',
'array' => 'يجب أن يحتوي :attribute على :size عنصرٍ/عناصر بالضبط.',
],
'starts_with' => 'يجب أن يبدأ :attribute بأحد القيم التالية: :values',
'string' => 'يجب أن يكون :attribute نصًا.',
'timezone' => 'يجب أن يكون :attribute نطاقًا زمنيًا صحيحًا.',
'unique' => 'قيمة :attribute مُستخدمة من قبل.',
'uploaded' => 'فشل في تحميل الـ :attribute.',
'url' => 'صيغة الرابط :attribute غير صحيحة.',
'uuid' => ':attribute يجب أن يكون بصيغة UUID سليمة.',

/*
|--------------------------------------------------------------------------
| 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' => 'الاسم',
'username' => 'اسم المُستخدم',
'email' => 'البريد الالكتروني',
'first_name' => 'الاسم الأول',
'last_name' => 'اسم العائلة',
'password' => 'كلمة المرور',
'password_confirmation' => 'تأكيد كلمة المرور',
'city' => 'المدينة',
'country' => 'الدولة',
'address' => 'العنوان',
'phone' => 'الهاتف',
'mobile' => 'الجوال',
'age' => 'العمر',
'sex' => 'الجنس',
'gender' => 'النوع',
'day' => 'اليوم',
'month' => 'الشهر',
'year' => 'السنة',
'hour' => 'ساعة',
'minute' => 'دقيقة',
'second' => 'ثانية',
'title' => 'العنوان',
'content' => 'المُحتوى',
'description' => 'الوصف',
'excerpt' => 'المُلخص',
'date' => 'التاريخ',
'time' => 'الوقت',
'available' => 'مُتاح',
'size' => 'الحجم',
],
];
Loading

0 comments on commit 5fd9cb4

Please sign in to comment.