Compare commits
6 Commits
643ccd6d9e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| bc56a1824f | |||
| 6405150dd2 | |||
| 1a3f82b22c | |||
| 0b6cbc8d9e | |||
| 834822e182 | |||
| e927a912e1 |
33
app/Http/Middleware/SetLocale.php
Normal file
33
app/Http/Middleware/SetLocale.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\App;
|
||||||
|
use Illuminate\Support\Facades\Session;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
|
class SetLocale
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an incoming request.
|
||||||
|
*
|
||||||
|
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
||||||
|
*/
|
||||||
|
public function handle(Request $request, Closure $next): Response
|
||||||
|
{
|
||||||
|
$locale = $request->query('lang');
|
||||||
|
|
||||||
|
if ($locale && in_array($locale, config('app.available_locales'))) {
|
||||||
|
App::setLocale($locale);
|
||||||
|
Session::put('locale', $locale);
|
||||||
|
} elseif (Session::has('locale')) {
|
||||||
|
App::setLocale(Session::get('locale'));
|
||||||
|
} else {
|
||||||
|
App::setLocale(config('app.fallback_locale', 'en'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -23,6 +23,7 @@ use Illuminate\Session\Middleware\AuthenticateSession;
|
|||||||
use Illuminate\Session\Middleware\StartSession;
|
use Illuminate\Session\Middleware\StartSession;
|
||||||
use Illuminate\Support\Facades\Gate;
|
use Illuminate\Support\Facades\Gate;
|
||||||
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
||||||
|
use Filament\SpatieLaravelTranslatablePlugin;
|
||||||
|
|
||||||
class PanelPanelProvider extends PanelProvider
|
class PanelPanelProvider extends PanelProvider
|
||||||
{
|
{
|
||||||
@@ -75,7 +76,11 @@ class PanelPanelProvider extends PanelProvider
|
|||||||
->resources([
|
->resources([
|
||||||
config('filament-logger.activity_resource'),
|
config('filament-logger.activity_resource'),
|
||||||
ApplicationResource::class,
|
ApplicationResource::class,
|
||||||
]);
|
])
|
||||||
|
->plugin(
|
||||||
|
SpatieLaravelTranslatablePlugin::make()
|
||||||
|
->defaultLocales(['en', 'ru', 'tk'])
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function boot(): void
|
public function boot(): void
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ return Application::configure(basePath: dirname(__DIR__))
|
|||||||
)
|
)
|
||||||
->withMiddleware(function (Middleware $middleware) {
|
->withMiddleware(function (Middleware $middleware) {
|
||||||
//
|
//
|
||||||
|
$middleware->web(append: [
|
||||||
|
\App\Http\Middleware\SetLocale::class,
|
||||||
|
]);
|
||||||
})
|
})
|
||||||
->withExceptions(function (Exceptions $exceptions) {
|
->withExceptions(function (Exceptions $exceptions) {
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -9,8 +9,10 @@
|
|||||||
"php": "^8.2",
|
"php": "^8.2",
|
||||||
"filament/filament": "^3.3",
|
"filament/filament": "^3.3",
|
||||||
"filament/spatie-laravel-settings-plugin": "^3.2",
|
"filament/spatie-laravel-settings-plugin": "^3.2",
|
||||||
|
"filament/spatie-laravel-translatable-plugin": "^3.2",
|
||||||
"laravel/framework": "^12.0",
|
"laravel/framework": "^12.0",
|
||||||
"laravel/tinker": "^2.10.1",
|
"laravel/tinker": "^2.10.1",
|
||||||
|
"spatie/laravel-translatable": "^6.11",
|
||||||
"z3d0x/filament-logger": "^0.8.0"
|
"z3d0x/filament-logger": "^0.8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
|||||||
659
composer.lock
generated
659
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -84,6 +84,19 @@ return [
|
|||||||
|
|
||||||
'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),
|
'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Application Available Locales
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The application locales that are available for your application.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'available_locales' => [
|
||||||
|
'en', 'ru', 'tk'
|
||||||
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Encryption Key
|
| Encryption Key
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Models\UserRole;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
class UsersTableSeeder extends Seeder
|
class UsersTableSeeder extends Seeder
|
||||||
@@ -16,6 +17,7 @@ class UsersTableSeeder extends Seeder
|
|||||||
'name' => 'nurmuhammet',
|
'name' => 'nurmuhammet',
|
||||||
'email' => 'nurmuhammet@mail.com',
|
'email' => 'nurmuhammet@mail.com',
|
||||||
'password' => bcrypt('payload10'),
|
'password' => bcrypt('payload10'),
|
||||||
|
'role' => UserRole::ADMIN,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
64
lang/en.json
Normal file
64
lang/en.json
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"Home": "Home",
|
||||||
|
"About Us": "About Us",
|
||||||
|
"Our solutions": "Our solutions",
|
||||||
|
"News & Stories": "News & Stories",
|
||||||
|
"News": "News",
|
||||||
|
"Success Stories": "Success Stories",
|
||||||
|
"Careers": "Careers",
|
||||||
|
"Career Opportunities": "Career Opportunities",
|
||||||
|
"Internships": "Internships",
|
||||||
|
"Contact": "Contact",
|
||||||
|
"Get Started": "Get Started",
|
||||||
|
"Apply for": "Apply for",
|
||||||
|
"Close": "Close",
|
||||||
|
"Name": "Name",
|
||||||
|
"Birthdate": "Birthdate",
|
||||||
|
"Email": "Email",
|
||||||
|
"Phone Number": "Phone Number",
|
||||||
|
"Resume (PDF, DOC, DOCX)": "Resume (PDF, DOC, DOCX)",
|
||||||
|
"Cover Letter (Optional)": "Cover Letter (Optional)",
|
||||||
|
"Submit Application": "Submit Application",
|
||||||
|
"Location": "Location",
|
||||||
|
"Salary": "Salary",
|
||||||
|
"Per monthly": "Per monthly",
|
||||||
|
"Error": "Error",
|
||||||
|
"An error occurred. Please try again.": "An error occurred. Please try again.",
|
||||||
|
"Gujurly Inžener logo": "Gujurly Inžener logo",
|
||||||
|
"Gujurly Inžener": "Gujurly Inžener",
|
||||||
|
"Address": "Address",
|
||||||
|
"Quick links": "Quick links",
|
||||||
|
"Support": "Support",
|
||||||
|
"Terms & Conditions": "Terms & Conditions",
|
||||||
|
"Privacy Policy": "Privacy Policy",
|
||||||
|
"|": "|",
|
||||||
|
"Mode": "Mode",
|
||||||
|
"Light": "Light",
|
||||||
|
"Dark": "Dark",
|
||||||
|
"Language": "Language",
|
||||||
|
"Read Our News": "Read Our News",
|
||||||
|
"Read More": "Read More",
|
||||||
|
"No news found...": "No news found...",
|
||||||
|
"Comments": "Comments",
|
||||||
|
"No comments yet": "No comments yet",
|
||||||
|
"Post Comment": "Post Comment",
|
||||||
|
"Required fields are marked": "Required fields are marked",
|
||||||
|
"Full Name": "Full Name",
|
||||||
|
"Title": "Title",
|
||||||
|
"Type your comments....": "Type your comments....",
|
||||||
|
"Submit Comment": "Submit Comment",
|
||||||
|
"Recent Blog": "Recent Blog",
|
||||||
|
"Phone": "Phone",
|
||||||
|
"Email Address": "Email Address",
|
||||||
|
"Location:": "Location:",
|
||||||
|
"Salary:": "Salary:",
|
||||||
|
"Description": "Description",
|
||||||
|
"Responsibilities and Qualifications": "Responsibilities and Qualifications",
|
||||||
|
"Apply for this Career": "Apply for this Career",
|
||||||
|
"For general application, send your resume at": "For general application, send your resume at",
|
||||||
|
"Apply Now": "Apply Now",
|
||||||
|
"No careers found...": "No careers found...",
|
||||||
|
"Search Here": "Search Here",
|
||||||
|
"Recent Success Stories": "Recent Success Stories",
|
||||||
|
"No internships found...": "No internships found..."
|
||||||
|
}
|
||||||
20
lang/en/auth.php
Normal file
20
lang/en/auth.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?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' => 'These credentials do not match our records.',
|
||||||
|
'password' => 'The provided password is incorrect.',
|
||||||
|
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
|
||||||
|
|
||||||
|
];
|
||||||
19
lang/en/pagination.php
Normal file
19
lang/en/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?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' => '« Previous',
|
||||||
|
'next' => 'Next »',
|
||||||
|
|
||||||
|
];
|
||||||
22
lang/en/passwords.php
Normal file
22
lang/en/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Password Reset 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
|
||||||
|
| outcome such as failure due to an invalid password / reset token.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'reset' => 'Your password has been reset.',
|
||||||
|
'sent' => 'We have emailed your password reset link.',
|
||||||
|
'throttled' => 'Please wait before retrying.',
|
||||||
|
'token' => 'This password reset token is invalid.',
|
||||||
|
'user' => "We can't find a user with that email address.",
|
||||||
|
|
||||||
|
];
|
||||||
198
lang/en/validation.php
Normal file
198
lang/en/validation.php
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
<?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' => 'The :attribute field must be accepted.',
|
||||||
|
'accepted_if' => 'The :attribute field must be accepted when :other is :value.',
|
||||||
|
'active_url' => 'The :attribute field must be a valid URL.',
|
||||||
|
'after' => 'The :attribute field must be a date after :date.',
|
||||||
|
'after_or_equal' => 'The :attribute field must be a date after or equal to :date.',
|
||||||
|
'alpha' => 'The :attribute field must only contain letters.',
|
||||||
|
'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.',
|
||||||
|
'alpha_num' => 'The :attribute field must only contain letters and numbers.',
|
||||||
|
'any_of' => 'The :attribute field is invalid.',
|
||||||
|
'array' => 'The :attribute field must be an array.',
|
||||||
|
'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.',
|
||||||
|
'before' => 'The :attribute field must be a date before :date.',
|
||||||
|
'before_or_equal' => 'The :attribute field must be a date before or equal to :date.',
|
||||||
|
'between' => [
|
||||||
|
'array' => 'The :attribute field must have between :min and :max items.',
|
||||||
|
'file' => 'The :attribute field must be between :min and :max kilobytes.',
|
||||||
|
'numeric' => 'The :attribute field must be between :min and :max.',
|
||||||
|
'string' => 'The :attribute field must be between :min and :max characters.',
|
||||||
|
],
|
||||||
|
'boolean' => 'The :attribute field must be true or false.',
|
||||||
|
'can' => 'The :attribute field contains an unauthorized value.',
|
||||||
|
'confirmed' => 'The :attribute field confirmation does not match.',
|
||||||
|
'contains' => 'The :attribute field is missing a required value.',
|
||||||
|
'current_password' => 'The password is incorrect.',
|
||||||
|
'date' => 'The :attribute field must be a valid date.',
|
||||||
|
'date_equals' => 'The :attribute field must be a date equal to :date.',
|
||||||
|
'date_format' => 'The :attribute field must match the format :format.',
|
||||||
|
'decimal' => 'The :attribute field must have :decimal decimal places.',
|
||||||
|
'declined' => 'The :attribute field must be declined.',
|
||||||
|
'declined_if' => 'The :attribute field must be declined when :other is :value.',
|
||||||
|
'different' => 'The :attribute field and :other must be different.',
|
||||||
|
'digits' => 'The :attribute field must be :digits digits.',
|
||||||
|
'digits_between' => 'The :attribute field must be between :min and :max digits.',
|
||||||
|
'dimensions' => 'The :attribute field has invalid image dimensions.',
|
||||||
|
'distinct' => 'The :attribute field has a duplicate value.',
|
||||||
|
'doesnt_end_with' => 'The :attribute field must not end with one of the following: :values.',
|
||||||
|
'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.',
|
||||||
|
'email' => 'The :attribute field must be a valid email address.',
|
||||||
|
'ends_with' => 'The :attribute field must end with one of the following: :values.',
|
||||||
|
'enum' => 'The selected :attribute is invalid.',
|
||||||
|
'exists' => 'The selected :attribute is invalid.',
|
||||||
|
'extensions' => 'The :attribute field must have one of the following extensions: :values.',
|
||||||
|
'file' => 'The :attribute field must be a file.',
|
||||||
|
'filled' => 'The :attribute field must have a value.',
|
||||||
|
'gt' => [
|
||||||
|
'array' => 'The :attribute field must have more than :value items.',
|
||||||
|
'file' => 'The :attribute field must be greater than :value kilobytes.',
|
||||||
|
'numeric' => 'The :attribute field must be greater than :value.',
|
||||||
|
'string' => 'The :attribute field must be greater than :value characters.',
|
||||||
|
],
|
||||||
|
'gte' => [
|
||||||
|
'array' => 'The :attribute field must have :value items or more.',
|
||||||
|
'file' => 'The :attribute field must be greater than or equal to :value kilobytes.',
|
||||||
|
'numeric' => 'The :attribute field must be greater than or equal to :value.',
|
||||||
|
'string' => 'The :attribute field must be greater than or equal to :value characters.',
|
||||||
|
],
|
||||||
|
'hex_color' => 'The :attribute field must be a valid hexadecimal color.',
|
||||||
|
'image' => 'The :attribute field must be an image.',
|
||||||
|
'in' => 'The selected :attribute is invalid.',
|
||||||
|
'in_array' => 'The :attribute field must exist in :other.',
|
||||||
|
'in_array_keys' => 'The :attribute field must contain at least one of the following keys: :values.',
|
||||||
|
'integer' => 'The :attribute field must be an integer.',
|
||||||
|
'ip' => 'The :attribute field must be a valid IP address.',
|
||||||
|
'ipv4' => 'The :attribute field must be a valid IPv4 address.',
|
||||||
|
'ipv6' => 'The :attribute field must be a valid IPv6 address.',
|
||||||
|
'json' => 'The :attribute field must be a valid JSON string.',
|
||||||
|
'list' => 'The :attribute field must be a list.',
|
||||||
|
'lowercase' => 'The :attribute field must be lowercase.',
|
||||||
|
'lt' => [
|
||||||
|
'array' => 'The :attribute field must have less than :value items.',
|
||||||
|
'file' => 'The :attribute field must be less than :value kilobytes.',
|
||||||
|
'numeric' => 'The :attribute field must be less than :value.',
|
||||||
|
'string' => 'The :attribute field must be less than :value characters.',
|
||||||
|
],
|
||||||
|
'lte' => [
|
||||||
|
'array' => 'The :attribute field must not have more than :value items.',
|
||||||
|
'file' => 'The :attribute field must be less than or equal to :value kilobytes.',
|
||||||
|
'numeric' => 'The :attribute field must be less than or equal to :value.',
|
||||||
|
'string' => 'The :attribute field must be less than or equal to :value characters.',
|
||||||
|
],
|
||||||
|
'mac_address' => 'The :attribute field must be a valid MAC address.',
|
||||||
|
'max' => [
|
||||||
|
'array' => 'The :attribute field must not have more than :max items.',
|
||||||
|
'file' => 'The :attribute field must not be greater than :max kilobytes.',
|
||||||
|
'numeric' => 'The :attribute field must not be greater than :max.',
|
||||||
|
'string' => 'The :attribute field must not be greater than :max characters.',
|
||||||
|
],
|
||||||
|
'max_digits' => 'The :attribute field must not have more than :max digits.',
|
||||||
|
'mimes' => 'The :attribute field must be a file of type: :values.',
|
||||||
|
'mimetypes' => 'The :attribute field must be a file of type: :values.',
|
||||||
|
'min' => [
|
||||||
|
'array' => 'The :attribute field must have at least :min items.',
|
||||||
|
'file' => 'The :attribute field must be at least :min kilobytes.',
|
||||||
|
'numeric' => 'The :attribute field must be at least :min.',
|
||||||
|
'string' => 'The :attribute field must be at least :min characters.',
|
||||||
|
],
|
||||||
|
'min_digits' => 'The :attribute field must have at least :min digits.',
|
||||||
|
'missing' => 'The :attribute field must be missing.',
|
||||||
|
'missing_if' => 'The :attribute field must be missing when :other is :value.',
|
||||||
|
'missing_unless' => 'The :attribute field must be missing unless :other is :value.',
|
||||||
|
'missing_with' => 'The :attribute field must be missing when :values is present.',
|
||||||
|
'missing_with_all' => 'The :attribute field must be missing when :values are present.',
|
||||||
|
'multiple_of' => 'The :attribute field must be a multiple of :value.',
|
||||||
|
'not_in' => 'The selected :attribute is invalid.',
|
||||||
|
'not_regex' => 'The :attribute field format is invalid.',
|
||||||
|
'numeric' => 'The :attribute field must be a number.',
|
||||||
|
'password' => [
|
||||||
|
'letters' => 'The :attribute field must contain at least one letter.',
|
||||||
|
'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.',
|
||||||
|
'numbers' => 'The :attribute field must contain at least one number.',
|
||||||
|
'symbols' => 'The :attribute field must contain at least one symbol.',
|
||||||
|
'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.',
|
||||||
|
],
|
||||||
|
'present' => 'The :attribute field must be present.',
|
||||||
|
'present_if' => 'The :attribute field must be present when :other is :value.',
|
||||||
|
'present_unless' => 'The :attribute field must be present unless :other is :value.',
|
||||||
|
'present_with' => 'The :attribute field must be present when :values is present.',
|
||||||
|
'present_with_all' => 'The :attribute field must be present when :values are present.',
|
||||||
|
'prohibited' => 'The :attribute field is prohibited.',
|
||||||
|
'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
|
||||||
|
'prohibited_if_accepted' => 'The :attribute field is prohibited when :other is accepted.',
|
||||||
|
'prohibited_if_declined' => 'The :attribute field is prohibited when :other is declined.',
|
||||||
|
'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
|
||||||
|
'prohibits' => 'The :attribute field prohibits :other from being present.',
|
||||||
|
'regex' => 'The :attribute field format is invalid.',
|
||||||
|
'required' => 'The :attribute field is required.',
|
||||||
|
'required_array_keys' => 'The :attribute field must contain entries for: :values.',
|
||||||
|
'required_if' => 'The :attribute field is required when :other is :value.',
|
||||||
|
'required_if_accepted' => 'The :attribute field is required when :other is accepted.',
|
||||||
|
'required_if_declined' => 'The :attribute field is required when :other is declined.',
|
||||||
|
'required_unless' => 'The :attribute field is required unless :other is in :values.',
|
||||||
|
'required_with' => 'The :attribute field is required when :values is present.',
|
||||||
|
'required_with_all' => 'The :attribute field is required when :values are present.',
|
||||||
|
'required_without' => 'The :attribute field is required when :values is not present.',
|
||||||
|
'required_without_all' => 'The :attribute field is required when none of :values are present.',
|
||||||
|
'same' => 'The :attribute field must match :other.',
|
||||||
|
'size' => [
|
||||||
|
'array' => 'The :attribute field must contain :size items.',
|
||||||
|
'file' => 'The :attribute field must be :size kilobytes.',
|
||||||
|
'numeric' => 'The :attribute field must be :size.',
|
||||||
|
'string' => 'The :attribute field must be :size characters.',
|
||||||
|
],
|
||||||
|
'starts_with' => 'The :attribute field must start with one of the following: :values.',
|
||||||
|
'string' => 'The :attribute field must be a string.',
|
||||||
|
'timezone' => 'The :attribute field must be a valid timezone.',
|
||||||
|
'unique' => 'The :attribute has already been taken.',
|
||||||
|
'uploaded' => 'The :attribute failed to upload.',
|
||||||
|
'uppercase' => 'The :attribute field must be uppercase.',
|
||||||
|
'url' => 'The :attribute field must be a valid URL.',
|
||||||
|
'ulid' => 'The :attribute field must be a valid ULID.',
|
||||||
|
'uuid' => 'The :attribute field must be a valid 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 our attribute placeholder
|
||||||
|
| with something more reader friendly such as "E-Mail Address" instead
|
||||||
|
| of "email". This simply helps us make our message more expressive.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'attributes' => [],
|
||||||
|
|
||||||
|
];
|
||||||
64
lang/ru.json
Normal file
64
lang/ru.json
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"Home": "Главная",
|
||||||
|
"About Us": "О нас",
|
||||||
|
"Our solutions": "Наши решения",
|
||||||
|
"News & Stories": "Новости и Истории",
|
||||||
|
"News": "Новости",
|
||||||
|
"Success Stories": "Истории успеха",
|
||||||
|
"Careers": "Карьера",
|
||||||
|
"Career Opportunities": "Карьерные возможности",
|
||||||
|
"Internships": "Стажировки",
|
||||||
|
"Contact": "Контакты",
|
||||||
|
"Get Started": "Начать",
|
||||||
|
"Apply for": "Подать заявку на",
|
||||||
|
"Close": "Закрыть",
|
||||||
|
"Name": "Имя",
|
||||||
|
"Birthdate": "Дата рождения",
|
||||||
|
"Email": "Электронная почта",
|
||||||
|
"Phone Number": "Номер телефона",
|
||||||
|
"Resume (PDF, DOC, DOCX)": "Резюме (PDF, DOC, DOCX)",
|
||||||
|
"Cover Letter (Optional)": "Сопроводительное письмо (необязательно)",
|
||||||
|
"Submit Application": "Отправить заявку",
|
||||||
|
"Location": "Местоположение",
|
||||||
|
"Salary": "Зарплата",
|
||||||
|
"Per monthly": "В месяц",
|
||||||
|
"Error": "Ошибка",
|
||||||
|
"An error occurred. Please try again.": "Произошла ошибка. Пожалуйста, попробуйте еще раз.",
|
||||||
|
"Gujurly Inžener logo": "Логотип Gujurly Inžener",
|
||||||
|
"Gujurly Inžener": "Gujurly Inžener",
|
||||||
|
"Address": "Адрес",
|
||||||
|
"Quick links": "Быстрые ссылки",
|
||||||
|
"Support": "Поддержка",
|
||||||
|
"Terms & Conditions": "Условия и положения",
|
||||||
|
"Privacy Policy": "Политика конфиденциальности",
|
||||||
|
"|": "|",
|
||||||
|
"Mode": "Режим",
|
||||||
|
"Light": "Светлый",
|
||||||
|
"Dark": "Темный",
|
||||||
|
"Language": "Язык",
|
||||||
|
"Read Our News": "Читайте наши новости",
|
||||||
|
"Read More": "Читать далее",
|
||||||
|
"No news found...": "Новости не найдены...",
|
||||||
|
"Comments": "Комментарии",
|
||||||
|
"No comments yet": "Пока нет комментариев",
|
||||||
|
"Post Comment": "Оставить комментарий",
|
||||||
|
"Required fields are marked": "Обязательные поля помечены",
|
||||||
|
"Full Name": "Полное имя",
|
||||||
|
"Title": "Заголовок",
|
||||||
|
"Type your comments....": "Напишите свои комментарии....",
|
||||||
|
"Submit Comment": "Отправить комментарий",
|
||||||
|
"Recent Blog": "Недавний блог",
|
||||||
|
"Phone": "Телефон",
|
||||||
|
"Email Address": "Адрес электронной почты",
|
||||||
|
"Location:": "Местоположение:",
|
||||||
|
"Salary:": "Зарплата:",
|
||||||
|
"Description": "Описание",
|
||||||
|
"Responsibilities and Qualifications": "Обязанности и квалификация",
|
||||||
|
"Apply for this Career": "Подать заявку на эту карьеру",
|
||||||
|
"For general application, send your resume at": "Для общего заявления отправьте свое резюме по адресу",
|
||||||
|
"Apply Now": "Подать сейчас",
|
||||||
|
"No careers found...": "Вакансии не найдены...",
|
||||||
|
"Search Here": "Искать здесь",
|
||||||
|
"Recent Success Stories": "Недавние истории успеха",
|
||||||
|
"No internships found...": "Стажировки не найдены..."
|
||||||
|
}
|
||||||
64
lang/tk.json
Normal file
64
lang/tk.json
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"Home": "Baş sahypa",
|
||||||
|
"About Us": "Biz barada",
|
||||||
|
"Our solutions": "Biziň çözgütlerimiz",
|
||||||
|
"News & Stories": "Täzelikler we Hekaýalar",
|
||||||
|
"News": "Täzelikler",
|
||||||
|
"Success Stories": "Üstünlik hekaýalary",
|
||||||
|
"Careers": "Kariýera",
|
||||||
|
"Career Opportunities": "Kariýera mümkinçilikleri",
|
||||||
|
"Internships": "Hünär öwrenmek",
|
||||||
|
"Contact": "Habarlaşmak",
|
||||||
|
"Get Started": "Başlamak",
|
||||||
|
"Apply for": "Üçin ýüz tutmak",
|
||||||
|
"Close": "Ýapmak",
|
||||||
|
"Name": "Ady",
|
||||||
|
"Birthdate": "Doglan senesi",
|
||||||
|
"Email": "Elektron poçta",
|
||||||
|
"Phone Number": "Telefon belgisi",
|
||||||
|
"Resume (PDF, DOC, DOCX)": "Rezüme (PDF, DOC, DOCX)",
|
||||||
|
"Cover Letter (Optional)": "Goşmaça hat (islege görä)",
|
||||||
|
"Submit Application": "Arza ibermek",
|
||||||
|
"Location": "Ýerleşýän ýeri",
|
||||||
|
"Salary": "Aýlyk",
|
||||||
|
"Per monthly": "Aýda",
|
||||||
|
"Error": "Ýalňyşlyk",
|
||||||
|
"An error occurred. Please try again.": "Ýalňyşlyk ýüze çykdy. Haýyş edýäris, täzeden synanyşyň.",
|
||||||
|
"Gujurly Inžener logo": "Gujurly Inžener nyşany",
|
||||||
|
"Gujurly Inžener": "Gujurly Inžener",
|
||||||
|
"Address": "Salgy",
|
||||||
|
"Quick links": "Çalt baglanyşyklar",
|
||||||
|
"Support": "Goldaw",
|
||||||
|
"Terms & Conditions": "Şertler we Düzgünler",
|
||||||
|
"Privacy Policy": "Gizlinlik syýasaty",
|
||||||
|
"|": "|",
|
||||||
|
"Mode": "Režim",
|
||||||
|
"Light": "Ýagty",
|
||||||
|
"Dark": "Garaňky",
|
||||||
|
"Language": "Dil",
|
||||||
|
"Read Our News": "Täzeliklerimizi okaň",
|
||||||
|
"Read More": "Doly okaň",
|
||||||
|
"No news found...": "Täzelik tapylmady...",
|
||||||
|
"Comments": "Teswirler",
|
||||||
|
"No comments yet": "Heniz teswir ýok",
|
||||||
|
"Post Comment": "Teswir goýmak",
|
||||||
|
"Required fields are marked": "Zerur meýdanlar bellendi",
|
||||||
|
"Full Name": "Doly ady",
|
||||||
|
"Title": "Ady",
|
||||||
|
"Type your comments....": "Teswirleriňizi ýazyň....",
|
||||||
|
"Submit Comment": "Teswir ibermek",
|
||||||
|
"Recent Blog": "Soňky blog",
|
||||||
|
"Phone": "Telefon",
|
||||||
|
"Email Address": "Elektron poçta salgysy",
|
||||||
|
"Location:": "Ýerleşýän ýeri:",
|
||||||
|
"Salary:": "Aýlyk:",
|
||||||
|
"Description": "Beýany",
|
||||||
|
"Responsibilities and Qualifications": "Jogapkärçilikler we Hünärler",
|
||||||
|
"Apply for this Career": "Bu kariýera ýüz tutuň",
|
||||||
|
"For general application, send your resume at": "Umumy arza üçin rezyumeňizi şu salga iberiň",
|
||||||
|
"Apply Now": "Häzir ýüz tutuň",
|
||||||
|
"No careers found...": "Kariýera tapylmady...",
|
||||||
|
"Search Here": "Şu ýerde gözle",
|
||||||
|
"Recent Success Stories": "Soňky üstünlik hekaýalary",
|
||||||
|
"No internships found...": "Hünär öwrenmek tapylmady..."
|
||||||
|
}
|
||||||
@@ -492,6 +492,15 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Language Switcher
|
||||||
|
$('#language-switcher button').on('click', function (e) {
|
||||||
|
$(this).addClass('active').siblings().removeClass('active');
|
||||||
|
var lang = $(this).attr('data-lang');
|
||||||
|
var currentUrl = new URL(window.location.href);
|
||||||
|
currentUrl.searchParams.set('lang', lang);
|
||||||
|
window.location.href = currentUrl.toString();
|
||||||
|
});
|
||||||
|
|
||||||
///============= * Custom Cursor =============\\\
|
///============= * Custom Cursor =============\\\
|
||||||
var ball = document.getElementById("cursor-ball");
|
var ball = document.getElementById("cursor-ball");
|
||||||
var cursorText = document.getElementById("cursor-text");
|
var cursorText = document.getElementById("cursor-text");
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
<div class="modal-dialog modal-lg">
|
<div class="modal-dialog modal-lg">
|
||||||
<div class="modal-content rounded-3">
|
<div class="modal-content rounded-3">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title" id="applicationModalLabel">Apply for <span id="jobTitle"></span></h5>
|
<h5 class="modal-title" id="applicationModalLabel">{{ __('Apply for') }} <span id="jobTitle"></span></h5>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{ __('Close') }}"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<h6 id="jobLocation"></h6>
|
<h6 id="jobLocation"></h6>
|
||||||
@@ -18,33 +18,33 @@
|
|||||||
@endif
|
@endif
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mb-3">
|
<div class="col-md-6 mb-3">
|
||||||
<label for="name" class="form-label">Name <span> *</span></label>
|
<label for="name" class="form-label">{{ __('Name') }} <span> *</span></label>
|
||||||
<input type="text" class="form-control" id="name" name="name" required>
|
<input type="text" class="form-control" id="name" name="name" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 mb-3">
|
<div class="col-md-6 mb-3">
|
||||||
<label for="birthdate" class="form-label">Birthdate <span> *</span></label>
|
<label for="birthdate" class="form-label">{{ __('Birthdate') }} <span> *</span></label>
|
||||||
<input type="date" class="form-control" id="birthdate" name="birthdate" required>
|
<input type="date" class="form-control" id="birthdate" name="birthdate" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mb-3">
|
<div class="col-md-6 mb-3">
|
||||||
<label for="email" class="form-label">Email <span> *</span></label>
|
<label for="email" class="form-label">{{ __('Email') }} <span> *</span></label>
|
||||||
<input type="email" class="form-control" id="email" name="email" required>
|
<input type="email" class="form-control" id="email" name="email" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 mb-3">
|
<div class="col-md-6 mb-3">
|
||||||
<label for="phone_number" class="form-label">Phone Number <span> *</span></label>
|
<label for="phone_number" class="form-label">{{ __('Phone Number') }} <span> *</span></label>
|
||||||
<input type="text" class="form-control" id="phone_number" name="phone_number" required>
|
<input type="text" class="form-control" id="phone_number" name="phone_number" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="resume_file" class="form-label">Resume (PDF, DOC, DOCX) <span> *</span></label>
|
<label for="resume_file" class="form-label">{{ __('Resume (PDF, DOC, DOCX)') }} <span> *</span></label>
|
||||||
<input type="file" class="form-control" id="resume_file" name="resume_file" accept=".pdf,.doc,.docx" required>
|
<input type="file" class="form-control" id="resume_file" name="resume_file" accept=".pdf,.doc,.docx" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="cover_letter" class="form-label">Cover Letter (Optional)</label>
|
<label for="cover_letter" class="form-label">{{ __('Cover Letter (Optional)') }}</label>
|
||||||
<textarea class="form-control" id="cover_letter" name="cover_letter" rows="5"></textarea>
|
<textarea class="form-control" id="cover_letter" name="cover_letter" rows="5"></textarea>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-primary">Submit Application</button>
|
<button type="submit" class="btn btn-primary">{{ __('Submit Application') }}</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -70,8 +70,8 @@
|
|||||||
|
|
||||||
// Set dynamic values
|
// Set dynamic values
|
||||||
modalTitle.textContent = button.getAttribute('data-' + jobType + '-title');
|
modalTitle.textContent = button.getAttribute('data-' + jobType + '-title');
|
||||||
modalLocation.textContent = 'Location: ' + button.getAttribute('data-' + jobType + '-location');
|
modalLocation.textContent = '{{ __('Location') }}: ' + button.getAttribute('data-' + jobType + '-location');
|
||||||
modalSalary.textContent = 'Salary: ' + button.getAttribute('data-' + jobType + '-salary') + ' / Per monthly';
|
modalSalary.textContent = '{{ __('Salary') }}: ' + button.getAttribute('data-' + jobType + '-salary') + ' / {{ __('Per monthly') }}';
|
||||||
modalDescription.textContent = button.getAttribute('data-' + jobType + '-description');
|
modalDescription.textContent = button.getAttribute('data-' + jobType + '-description');
|
||||||
jobIdInput.value = jobId;
|
jobIdInput.value = jobId;
|
||||||
|
|
||||||
@@ -108,12 +108,12 @@
|
|||||||
modal.hide();
|
modal.hide();
|
||||||
form.reset();
|
form.reset();
|
||||||
} else {
|
} else {
|
||||||
alert('Error: ' + data.message);
|
alert('{{ __('Error') }}: ' + data.message);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.error('Error:', error);
|
console.error('{{ __('Error') }}:', error);
|
||||||
alert('An error occurred. Please try again.');
|
alert('{{ __('An error occurred. Please try again.') }}');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
@include('web.layouts.meta-tags')
|
@include('web.layouts.meta-tags')
|
||||||
|
|
||||||
<!-- Title of Site -->
|
<!-- Title of Site -->
|
||||||
<title>@isset($title) {{ "{$title} |" }} @endisset {{ $settings->name }}</title>
|
<title>@isset($title) {{ "{$title} " . __('|') . " " }} @endisset {{ $settings->name }}</title>
|
||||||
|
|
||||||
<!-- Favicons -->
|
<!-- Favicons -->
|
||||||
@include('web.layouts.favicons')
|
@include('web.layouts.favicons')
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
<div class="col-lg-4 col-sm-6">
|
<div class="col-lg-4 col-sm-6">
|
||||||
<div class="footer__four-widget mr-40">
|
<div class="footer__four-widget mr-40">
|
||||||
<a href="/" class="logo align-items-center d-flex gap-2">
|
<a href="/" class="logo align-items-center d-flex gap-2">
|
||||||
<img src="/web/assets/img/logo-small.png" style="height: 35px;" alt="Gujurly Inžener logo">
|
<img src="/web/assets/img/logo-small.png" style="height: 35px;" alt="{{ __('Gujurly Inžener logo') }}">
|
||||||
<span style="font-size: 2em;color: var(--text-heading-color);">Gujurly Inžener</span>
|
<span style="font-size: 2em;color: var(--text-heading-color);">{{ __('Gujurly Inžener') }}</span>
|
||||||
</a>
|
</a>
|
||||||
<h5>{{ $settings->footer_company_header }}</h5>
|
<h5>{{ $settings->footer_company_header }}</h5>
|
||||||
</div>
|
</div>
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<li><a href="{{ route('about-us.index') }}">{{ __('About Us') }}</a></li>
|
<li><a href="{{ route('about-us.index') }}">{{ __('About Us') }}</a></li>
|
||||||
<li><a href="{{ route('our-solutions.index') }}">{{ __('Our solutions') }}</a></li>
|
<li><a href="{{ route('our-solutions.index') }}">{{ __('Our solutions') }}</a></li>
|
||||||
<li><a href="{{ route('career.index') }}">{{ __('Career Opportunities') }}</a></li>
|
<li><a href="{{ route('career.index') }}">{{ __('Career Opportunities') }}</a></li>
|
||||||
<li><a href="{{ route('success.index') }}">{{ __('Success stories') }}</a></li>
|
<li><a href="{{ route('success.index') }}">{{ __('Success Stories') }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<div class="footer-widget-menu">
|
<div class="footer-widget-menu">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="{{ route('terms') }}">{{ __('Terms & Conditions') }}</a></li>
|
<li><a href="{{ route('terms') }}">{{ __('Terms & Conditions') }}</a></li>
|
||||||
<li><a href="{{ route('privacy') }}">{{ __('Privacy policy') }}</a></li>
|
<li><a href="{{ route('privacy') }}">{{ __('Privacy Policy') }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,8 +8,16 @@
|
|||||||
<div class="switch__tab-area-item">
|
<div class="switch__tab-area-item">
|
||||||
<h5>{{ __('Mode') }}</h5>
|
<h5>{{ __('Mode') }}</h5>
|
||||||
<div class="switch__tab-area-item-button type-dark-mode">
|
<div class="switch__tab-area-item-button type-dark-mode">
|
||||||
<button class="active" data-mode="light">{{ __('light') }}</button>
|
<button class="active" data-mode="light">{{ __('Light') }}</button>
|
||||||
<button data-mode="dark-mode">{{ __('dark') }}</button>
|
<button data-mode="dark-mode">{{ __('Dark') }}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="switch__tab-area-item">
|
||||||
|
<h5>{{ __('Language') }}</h5>
|
||||||
|
<div class="switch__tab-area-item-button type-language" id="language-switcher">
|
||||||
|
<button class="{{ app()->getLocale() == 'en' ? 'active' : '' }}" data-lang="en">EN</button>
|
||||||
|
<button class="{{ app()->getLocale() == 'ru' ? 'active' : '' }}" data-lang="ru">RU</button>
|
||||||
|
<button class="{{ app()->getLocale() == 'tk' ? 'active' : '' }}" data-lang="tk">TK</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -295,10 +295,10 @@ body {
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="breadcrumb__area-content">
|
<div class="breadcrumb__area-content">
|
||||||
<h2>About Us</h2>
|
<h2>{{ __('About Us') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/">Home</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="/">{{ __('Home') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li>About Us</li>
|
<li>{{ __('About Us') }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -345,7 +345,7 @@ body {
|
|||||||
<div class="aspect-video relative">
|
<div class="aspect-video relative">
|
||||||
<video class="w-full h-full object-cover" controls="" poster="{{ asset('storage/' . $aboutSettings->our_story_video_poster) }}">
|
<video class="w-full h-full object-cover" controls="" poster="{{ asset('storage/' . $aboutSettings->our_story_video_poster) }}">
|
||||||
<source type="video/mp4" src="{{ asset('storage/' . $aboutSettings->our_story_video_source) }}" />
|
<source type="video/mp4" src="{{ asset('storage/' . $aboutSettings->our_story_video_source) }}" />
|
||||||
Your browser does not support the video tag.
|
{{ __('Your browser does not support the video tag.') }}
|
||||||
</video>
|
</video>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -396,14 +396,14 @@ body {
|
|||||||
<div class="org-chart">
|
<div class="org-chart">
|
||||||
<div class="flex justify-center mb-16">
|
<div class="flex justify-center mb-16">
|
||||||
<div class="org-box org-box-director">
|
<div class="org-box org-box-director">
|
||||||
<h3 class="font-bold text-lg">Director</h3>
|
<h3 class="font-bold text-lg">{{ __('Director') }}</h3>
|
||||||
<p class="text-sm text-gray-500">{{ $aboutSettings->company_structure_director_name }}</p>
|
<p class="text-sm text-gray-500">{{ $aboutSettings->company_structure_director_name }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center mb-16 relative">
|
<div class="flex justify-center mb-16 relative">
|
||||||
<div class="absolute top-[-60px] w-px h-[60px] bg-gray-300"></div>
|
<div class="absolute top-[-60px] w-px h-[60px] bg-gray-300"></div>
|
||||||
<div class="org-box org-box-advisor">
|
<div class="org-box org-box-advisor">
|
||||||
<h3 class="font-bold text-lg">Technical Advisor</h3>
|
<h3 class="font-bold text-lg">{{ __('Technical Advisor') }}</h3>
|
||||||
<p class="text-sm text-gray-500">{{ $aboutSettings->company_structure_advisor_name }}</p>
|
<p class="text-sm text-gray-500">{{ $aboutSettings->company_structure_advisor_name }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -426,8 +426,8 @@ body {
|
|||||||
</section>
|
</section>
|
||||||
<section class="mb-24">
|
<section class="mb-24">
|
||||||
<div class="text-center max-w-3xl mx-auto mb-12">
|
<div class="text-center max-w-3xl mx-auto mb-12">
|
||||||
<h2 class="text-3xl md:text-4xl font-bold tracking-tight mb-4 bg-clip-text text-transparent bg-gradient-to-r from-teal-500 to-purple-600">Our Management</h2>
|
<h2 class="text-3xl md:text-4xl font-bold tracking-tight mb-4 bg-clip-text text-transparent bg-gradient-to-r from-teal-500 to-purple-600">{{ __('Our Management') }}</h2>
|
||||||
<p class="text-lg text-gray-600">Meet the leadership team driving our vision forward</p>
|
<p class="text-lg text-gray-600">{{ __('Meet the leadership team driving our vision forward') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||||
@foreach (App\Models\TeamMember::all() as $member)
|
@foreach (App\Models\TeamMember::all() as $member)
|
||||||
|
|||||||
@@ -15,10 +15,10 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="breadcrumb__area-content">
|
<div class="breadcrumb__area-content">
|
||||||
<h2>Careers</h2>
|
<h2>{{ __('Careers') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/">Home</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="/">{{ __('Home') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li>Careers</li>
|
<li>{{ __('Careers') }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12 mb-25 text-center">
|
<div class="col-xl-12 mb-25 text-center">
|
||||||
<h3 class="section-title">For general application, send your resume at career@gujurly.com</h3>
|
<h3 class="section-title">{{ __('For general application, send your resume at') }} career@gujurly.com</h3>
|
||||||
</div>
|
</div>
|
||||||
@forelse ($careers as $career)
|
@forelse ($careers as $career)
|
||||||
<div class="col-xl-4 col-md-6 xl-mb-25 wow fadeInUp" data-wow-delay=".4s">
|
<div class="col-xl-4 col-md-6 xl-mb-25 wow fadeInUp" data-wow-delay=".4s">
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
<span>{{ $career->title }}</span>
|
<span>{{ $career->title }}</span>
|
||||||
<h3>{{ $career->location }}</h3>
|
<h3>{{ $career->location }}</h3>
|
||||||
<h2>{{ $career->salary_per_month }} {{ $career->salary_currency }}</h2>
|
<h2>{{ $career->salary_per_month }} {{ $career->salary_currency }}</h2>
|
||||||
<span>Per monthly</span>
|
<span>{{ __('Per monthly') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="price__area-item-list">
|
<div class="price__area-item-list">
|
||||||
<ul>
|
<ul>
|
||||||
@@ -50,12 +50,12 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="price__area-item-btn">
|
<div class="price__area-item-btn">
|
||||||
<button type="button" class="build_button apply-now-button" data-bs-toggle="modal" data-bs-target="#applyInternshipModal" data-job-id="{{ $career->id }}" data-job-type="career" data-career-title="{{ $career->title }}" data-career-location="{{ $career->location }}" data-career-salary="{{ $career->salary_per_month }}" data-career-description="{{ $career->title_description }}">Apply Now<i class="flaticon-right-up"></i></button>
|
<button type="button" class="build_button apply-now-button" data-bs-toggle="modal" data-bs-target="#applyInternshipModal" data-job-id="{{ $career->id }}" data-job-type="career" data-career-title="{{ $career->title }}" data-career-location="{{ $career->location }}" data-career-salary="{{ $career->salary_per_month }}" data-career-description="{{ $career->title_description }}">{{ __('Apply Now') }}<i class="flaticon-right-up"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@empty
|
@empty
|
||||||
<span>No careers found...</span>
|
<span>{{ __('No careers found...') }}</span>
|
||||||
@endforelse
|
@endforelse
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -86,8 +86,8 @@
|
|||||||
|
|
||||||
// Set dynamic values
|
// Set dynamic values
|
||||||
modalTitle.textContent = button.getAttribute('data-' + jobType + '-title');
|
modalTitle.textContent = button.getAttribute('data-' + jobType + '-title');
|
||||||
modalLocation.textContent = 'Location: ' + button.getAttribute('data-' + jobType + '-location');
|
modalLocation.textContent = '{{ __('Location') }}: ' + button.getAttribute('data-' + jobType + '-location');
|
||||||
modalSalary.textContent = 'Salary: ' + button.getAttribute('data-' + jobType + '-salary') + ' / Per monthly';
|
modalSalary.textContent = '{{ __('Salary') }}: ' + button.getAttribute('data-' + jobType + '-salary') + ' / {{ __('Per monthly') }}';
|
||||||
modalDescription.textContent = button.getAttribute('data-' + jobType + '-description');
|
modalDescription.textContent = button.getAttribute('data-' + jobType + '-description');
|
||||||
jobIdInput.value = jobId;
|
jobIdInput.value = jobId;
|
||||||
|
|
||||||
@@ -124,12 +124,12 @@
|
|||||||
modal.hide();
|
modal.hide();
|
||||||
form.reset();
|
form.reset();
|
||||||
} else {
|
} else {
|
||||||
alert('Error: ' + data.message);
|
alert('{{ __('Error') }}: ' + data.message);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.error('Error:', error);
|
console.error('{{ __('Error') }}:', error);
|
||||||
alert('An error occurred. Please try again.');
|
alert('{{ __('An error occurred. Please try again.') }}');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,10 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="breadcrumb__area-content">
|
<div class="breadcrumb__area-content">
|
||||||
<h2>Contact Us</h2>
|
<h2>{{ __('Contact Us') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/">Home</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="/">{{ __('Home') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li>Contact Us</li>
|
<li>{{ __('Contact Us') }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
<i class="flaticon-phone"></i>
|
<i class="flaticon-phone"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact__area-left-contact-item-content">
|
<div class="contact__area-left-contact-item-content">
|
||||||
<span>Phone:</span>
|
<span>{{ __('Phone') }}:</span>
|
||||||
<h6><a href="tel:{{ $contactSettings->phone_number }}">{{ $contactSettings->phone_number }}</a></h6>
|
<h6><a href="tel:{{ $contactSettings->phone_number }}">{{ $contactSettings->phone_number }}</a></h6>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
<i class="flaticon-email-3"></i>
|
<i class="flaticon-email-3"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact__area-left-contact-item-content">
|
<div class="contact__area-left-contact-item-content">
|
||||||
<span>Email Address:</span>
|
<span>{{ __('Email Address') }}:</span>
|
||||||
<h6><a href="mailto:{{ $contactSettings->email_address }}">{{ $contactSettings->email_address }}</a></h6>
|
<h6><a href="mailto:{{ $contactSettings->email_address }}">{{ $contactSettings->email_address }}</a></h6>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<i class="flaticon-location-1"></i>
|
<i class="flaticon-location-1"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact__area-left-contact-item-content">
|
<div class="contact__area-left-contact-item-content">
|
||||||
<span>Location:</span>
|
<span>{{ __('Location') }}:</span>
|
||||||
<h6><a href="https://google.com/maps" target="_blank">{{ $contactSettings->location_address }}</a></h6>
|
<h6><a href="https://google.com/maps" target="_blank">{{ $contactSettings->location_address }}</a></h6>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -65,32 +65,32 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-lg-7 wow fadeInRight" data-wow-delay=".4s">
|
<div class="col-lg-7 wow fadeInRight" data-wow-delay=".4s">
|
||||||
<div class="contact__area-form">
|
<div class="contact__area-form">
|
||||||
<h4>Send Message</h4>
|
<h4>{{ __('Send Message') }}</h4>
|
||||||
<form action="#">
|
<form action="#">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mb-25">
|
<div class="col-md-6 mb-25">
|
||||||
<div class="contact__form-area-item">
|
<div class="contact__form-area-item">
|
||||||
<input type="text" name="name" placeholder="Full Name" required="required">
|
<input type="text" name="name" placeholder="{{ __('Full Name') }}" required="required">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 md-mb-25">
|
<div class="col-md-6 md-mb-25">
|
||||||
<div class="contact__form-area-item">
|
<div class="contact__form-area-item">
|
||||||
<input type="email" name="email" placeholder="Email Address" required="required">
|
<input type="email" name="email" placeholder="{{ __('Email Address') }}" required="required">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 mb-25">
|
<div class="col-md-12 mb-25">
|
||||||
<div class="contact__form-area-item">
|
<div class="contact__form-area-item">
|
||||||
<input type="text" name="subject" placeholder="Subject">
|
<input type="text" name="subject" placeholder="{{ __('Subject') }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 mb-25">
|
<div class="col-md-12 mb-25">
|
||||||
<div class="contact__form-area-item">
|
<div class="contact__form-area-item">
|
||||||
<textarea name="message" placeholder="Message"></textarea>
|
<textarea name="message" placeholder="{{ __('Message') }}"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="contact__form-area-item">
|
<div class="contact__form-area-item">
|
||||||
<button class="build_button" type="submit">Submit Message <i class="flaticon-right-up"></i></button>
|
<button class="build_button" type="submit">{{ __('Submit Message') }} <i class="flaticon-right-up"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -146,14 +146,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row mt-70 wow fadeInUp" data-wow-delay=".5s">
|
<div class="row mt-70 wow fadeInUp" data-wow-delay=".5s">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="swiper services_four_slide data_cursor" data-cursor-text="Drag">
|
<div class="swiper services_four_slide data_cursor" data-cursor-text="{{ __('Drag') }}">
|
||||||
<div class="swiper-wrapper">
|
<div class="swiper-wrapper">
|
||||||
@foreach($solutionSettings->solution_items as $item)
|
@foreach($solutionSettings->solution_items as $item)
|
||||||
<div class="swiper-slide">
|
<div class="swiper-slide">
|
||||||
<div class="services__one-item">
|
<div class="services__one-item">
|
||||||
<i class="{{ $item['icon_class'] }}"></i>
|
<i class="{{ $item['icon_class'] }}"></i>
|
||||||
<h4><a href="{{ $item['link'] }}">{{ $item['title'] }}</a></h4>
|
<h4><a href="{{ $item['link'] }}">{{ $item['title'] }}</a></h4>
|
||||||
<a class="more_btn" href="{{ $item['link'] }}">Read More<i class="flaticon-right-up"></i></a>
|
<a class="more_btn" href="{{ $item['link'] }}">{{ __('Read More') }}<i class="flaticon-right-up"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -315,8 +315,8 @@
|
|||||||
<div class="row mb-30">
|
<div class="row mb-30">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="blog__four-title t-center">
|
<div class="blog__four-title t-center">
|
||||||
<span class="subtitle wow fadeInLeft" data-wow-delay=".4s">News & Blog</span>
|
<span class="subtitle wow fadeInLeft" data-wow-delay=".4s">{{ __('News & Blog') }}</span>
|
||||||
<h2 class="title_split_anim">News</h2>
|
<h2 class="title_split_anim">{{ __('News') }}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -334,8 +334,8 @@
|
|||||||
<div class="blog__four-item-content">
|
<div class="blog__four-item-content">
|
||||||
<div class="meta">
|
<div class="meta">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#"><i class="far fa-user"></i>{{ $news->author->name ?? 'Admin' }}</a></li>
|
<li><a href="#"><i class="far fa-user"></i>{{ $news->author->name ?? __('Admin') }}</a></li>
|
||||||
<li><a href="#"><i class="far fa-comment-dots"></i>Comments ({{ $news->comments->count() }})</a></li>
|
<li><a href="#"><i class="far fa-comment-dots"></i>{{ __('Comments') }} ({{ $news->comments->count() }})</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<h4><a href="{{ route('news.show', $news->slug) }}">{{ $news->title }}</a></h4>
|
<h4><a href="{{ route('news.show', $news->slug) }}">{{ $news->title }}</a></h4>
|
||||||
|
|||||||
@@ -15,10 +15,10 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="breadcrumb__area-content">
|
<div class="breadcrumb__area-content">
|
||||||
<h2>Internships</h2>
|
<h2>{{ __('Internships') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/">Home</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="/">{{ __('Home') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li>Internships</li>
|
<li>{{ __('Internships') }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12 mb-25 text-center">
|
<div class="col-xl-12 mb-25 text-center">
|
||||||
<h3 class="section-title">For general application, send your resume at career@gujurly.com</h3>
|
<h3 class="section-title">{{ __('For general application, send your resume at') }} career@gujurly.com</h3>
|
||||||
</div>
|
</div>
|
||||||
@forelse ($internships as $internship)
|
@forelse ($internships as $internship)
|
||||||
<div class="col-xl-4 col-md-6 xl-mb-25 wow fadeInUp" data-wow-delay=".4s">
|
<div class="col-xl-4 col-md-6 xl-mb-25 wow fadeInUp" data-wow-delay=".4s">
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
<span>{{ $internship->title }}</span>
|
<span>{{ $internship->title }}</span>
|
||||||
<h3>{{ $internship->location }}</h3>
|
<h3>{{ $internship->location }}</h3>
|
||||||
<h2>{{ $internship->salary_per_month }} {{ $internship->salary_currency }}</h2>
|
<h2>{{ $internship->salary_per_month }} {{ $internship->salary_currency }}</h2>
|
||||||
<span>Per monthly</span>
|
<span>{{ __('Per monthly') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="price__area-item-list">
|
<div class="price__area-item-list">
|
||||||
<ul>
|
<ul>
|
||||||
@@ -50,12 +50,12 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="price__area-item-btn">
|
<div class="price__area-item-btn">
|
||||||
<button type="button" class="build_button apply-now-button" data-bs-toggle="modal" data-bs-target="#applyInternshipModal" data-job-id="{{ $internship->id }}" data-job-type="internship" data-internship-title="{{ $internship->title }}" data-internship-location="{{ $internship->location }}" data-internship-salary="{{ $internship->salary_per_month }}" data-internship-description="{{ $internship->title_description }}">Apply Now<i class="flaticon-right-up"></i></button>
|
<button type="button" class="build_button apply-now-button" data-bs-toggle="modal" data-bs-target="#applyInternshipModal" data-job-id="{{ $internship->id }}" data-job-type="internship" data-internship-title="{{ $internship->title }}" data-internship-location="{{ $internship->location }}" data-internship-salary="{{ $internship->salary_per_month }}" data-internship-description="{{ $internship->title_description }}">{{ __('Apply Now') }}<i class="flaticon-right-up"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@empty
|
@empty
|
||||||
<span>No internships found...</span>
|
<span>{{ __('No internships found...') }}</span>
|
||||||
@endforelse
|
@endforelse
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -86,8 +86,8 @@
|
|||||||
|
|
||||||
// Set dynamic values
|
// Set dynamic values
|
||||||
modalTitle.textContent = button.getAttribute('data-' + jobType + '-title');
|
modalTitle.textContent = button.getAttribute('data-' + jobType + '-title');
|
||||||
modalLocation.textContent = 'Location: ' + button.getAttribute('data-' + jobType + '-location');
|
modalLocation.textContent = '{{ __('Location') }}: ' + button.getAttribute('data-' + jobType + '-location');
|
||||||
modalSalary.textContent = 'Salary: ' + button.getAttribute('data-' + jobType + '-salary') + ' / Per monthly';
|
modalSalary.textContent = '{{ __('Salary') }}: ' + button.getAttribute('data-' + jobType + '-salary') + ' / {{ __('Per monthly') }}';
|
||||||
modalDescription.textContent = button.getAttribute('data-' + jobType + '-description');
|
modalDescription.textContent = button.getAttribute('data-' + jobType + '-description');
|
||||||
jobIdInput.value = jobId;
|
jobIdInput.value = jobId;
|
||||||
|
|
||||||
@@ -124,12 +124,12 @@
|
|||||||
modal.hide();
|
modal.hide();
|
||||||
form.reset();
|
form.reset();
|
||||||
} else {
|
} else {
|
||||||
alert('Error: ' + data.message);
|
alert('{{ __('Error') }}: ' + data.message);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.error('Error:', error);
|
console.error('{{ __('Error') }}:', error);
|
||||||
alert('An error occurred. Please try again.');
|
alert('{{ __('An error occurred. Please try again.') }}');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="breadcrumb__area-content">
|
<div class="breadcrumb__area-content">
|
||||||
<h2>News</h2>
|
<h2>{{ __('News') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/">Home</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="/">{{ __('Home') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li>News</li>
|
<li>{{ __('News') }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="section-title text-center pb-50">
|
<div class="section-title text-center pb-50">
|
||||||
<h2 class="pb-3">Read Our News</h2>
|
<h2 class="pb-3">{{ __('Read Our News') }}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -40,13 +40,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="blog__one-item-content">
|
<div class="blog__one-item-content">
|
||||||
<h4><a href="{{ route('news.show', $news->slug) }}">{{ $news->title }}</a></h4>
|
<h4><a href="{{ route('news.show', $news->slug) }}">{{ $news->title }}</a></h4>
|
||||||
<a class="more_btn" href="{{ route('news.show', $news->slug) }}">Read More<i class="flaticon-right-up"></i></a>
|
<a class="more_btn" href="{{ route('news.show', $news->slug) }}">{{ __('Read More') }}<i class="flaticon-right-up"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@empty
|
@empty
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="alert alert-info">No news found...</div>
|
<div class="alert alert-info">{{ __('No news found...') }}</div>
|
||||||
</div>
|
</div>
|
||||||
@endforelse
|
@endforelse
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
<div class="breadcrumb__area-content">
|
<div class="breadcrumb__area-content">
|
||||||
<h2>{{ $news->title }}</h2>
|
<h2>{{ $news->title }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="{{ route('home') }}">Home</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="{{ route('home') }}">{{ __('Home') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li><a href="{{ route('news.index') }}">News</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="{{ route('news.index') }}">{{ __('News') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li>{{ $news->title }}</li>
|
<li>{{ $news->title }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="blog__details-area-comment mt-40">
|
<div class="blog__details-area-comment mt-40">
|
||||||
<h3 class="mb-30">Comments ({{ $news->comments->count() }})</h3>
|
<h3 class="mb-30">{{ __('Comments') }} ({{ $news->comments->count() }})</h3>
|
||||||
@forelse ($news->comments as $comment)
|
@forelse ($news->comments as $comment)
|
||||||
<div class="blog__details-area-comment-item">
|
<div class="blog__details-area-comment-item">
|
||||||
<div class="blog__details-area-comment-item-comment">
|
<div class="blog__details-area-comment-item-comment">
|
||||||
@@ -54,35 +54,35 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@empty
|
@empty
|
||||||
<p>No comments yet</p>
|
<p>{{ __('No comments yet') }}</p>
|
||||||
@endforelse
|
@endforelse
|
||||||
</div>
|
</div>
|
||||||
<div class="blog__details-area-contact mt-60">
|
<div class="blog__details-area-contact mt-60">
|
||||||
<h3>Post Comment</h3>
|
<h3>{{ __('Post Comment') }}</h3>
|
||||||
<p>Required fields are marked</p>
|
<p>{{ __('Required fields are marked') }}</p>
|
||||||
<div class="blog__details-area-contact-form">
|
<div class="blog__details-area-contact-form">
|
||||||
<form action="{{ route('comments.store', $news->slug) }}" method="POST">
|
<form action="{{ route('comments.store', $news->slug) }}" method="POST">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-6 mt-25">
|
<div class="col-sm-6 mt-25">
|
||||||
<div class="blog__details-area-contact-form-item contact-item">
|
<div class="blog__details-area-contact-form-item contact-item">
|
||||||
<input type="text" name="author_name" placeholder="Full Name" required="required">
|
<input type="text" name="author_name" placeholder="{{ __('Full Name') }}" required="required">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 mt-25">
|
<div class="col-sm-6 mt-25">
|
||||||
<div class="blog__details-area-contact-form-item contact-item">
|
<div class="blog__details-area-contact-form-item contact-item">
|
||||||
<input type="text" name="title" placeholder="Title" required="required">
|
<input type="text" name="title" placeholder="{{ __('Title') }}" required="required">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12 mt-25">
|
<div class="col-sm-12 mt-25">
|
||||||
<div class="blog__details-area-contact-form-item contact-item">
|
<div class="blog__details-area-contact-form-item contact-item">
|
||||||
<textarea name="message" placeholder="Type your comments...."></textarea>
|
<textarea name="message" placeholder="{{ __('Type your comments....') }}"></textarea>
|
||||||
<input type="hidden" name="news_id" value="{{ $news->id }}">
|
<input type="hidden" name="news_id" value="{{ $news->id }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-12 mt-25">
|
<div class="col-lg-12 mt-25">
|
||||||
<div class="blog__details-area-contact-form-item">
|
<div class="blog__details-area-contact-form-item">
|
||||||
<button class="build_button" type="submit">Submit Comment<i class="flaticon-right-up"></i></button>
|
<button class="build_button" type="submit">{{ __('Submit Comment') }}<i class="flaticon-right-up"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
<div class="all__sidebar">
|
<div class="all__sidebar">
|
||||||
|
|
||||||
<div class="all__sidebar-item">
|
<div class="all__sidebar-item">
|
||||||
<h4>Recent Blog</h4>
|
<h4>{{ __('Recent Blog') }}</h4>
|
||||||
<div class="all__sidebar-item-post dark_image">
|
<div class="all__sidebar-item-post dark_image">
|
||||||
@foreach($recentNews as $news)
|
@foreach($recentNews as $news)
|
||||||
<div class="post__item">
|
<div class="post__item">
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="breadcrumb__area-content">
|
<div class="breadcrumb__area-content">
|
||||||
<h2>Success Stories</h2>
|
<h2>{{ __('Success Stories') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/">Home</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="/">{{ __('Home') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li>Success Stories</li>
|
<li>{{ __('Success Stories') }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -24,8 +24,8 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="section-title text-center pb-50">
|
<div class="section-title text-center pb-50">
|
||||||
<h2 class="pb-3">Our Success Stories</h2>
|
<h2 class="pb-3">{{ __('Our Success Stories') }}</h2>
|
||||||
<p>Discover inspiring narratives of triumph, growth, and achievement through our curated collection of success stories. Each story is a testament to dedication and hard work.</p>
|
<p>{{ __('Discover inspiring narratives of triumph, growth, and achievement through our curated collection of success stories. Each story is a testament to dedication and hard work.') }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@forelse ($allSuccesses as $success)
|
@forelse ($allSuccesses as $success)
|
||||||
@@ -39,13 +39,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="blog__one-item-content">
|
<div class="blog__one-item-content">
|
||||||
<h4><a href="{{ route('success.show', $success->slug) }}">{{ $success->title }}</a></h4>
|
<h4><a href="{{ route('success.show', $success->slug) }}">{{ $success->title }}</a></h4>
|
||||||
<a class="more_btn" href="{{ route('success.show', $success->slug) }}">Read More<i class="flaticon-right-up"></i></a>
|
<a class="more_btn" href="{{ route('success.show', $success->slug) }}">{{ __('Read More') }}<i class="flaticon-right-up"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@empty
|
@empty
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="alert alert-info">No success stories found...</div>
|
<div class="alert alert-info">{{ __('No success stories found...') }}</div>
|
||||||
</div>
|
</div>
|
||||||
@endforelse
|
@endforelse
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
<div class="breadcrumb__area-content">
|
<div class="breadcrumb__area-content">
|
||||||
<h2>{{ $success->title }}</h2>
|
<h2>{{ $success->title }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="{{ route('home') }}">Home</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="{{ route('home') }}">{{ __('Home') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li><a href="{{ route('success.index') }}">Success Stories</a><i class="fa-regular fa-angle-right"></i></li>
|
<li><a href="{{ route('success.index') }}">{{ __('Success Stories') }}</a><i class="fa-regular fa-angle-right"></i></li>
|
||||||
<li>{{ $success->title }}</li>
|
<li>{{ $success->title }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<div class="all__sidebar">
|
<div class="all__sidebar">
|
||||||
|
|
||||||
<div class="all__sidebar-item">
|
<div class="all__sidebar-item">
|
||||||
<h4>Recent Success Stories</h4>
|
<h4>{{ __('Recent Success Stories') }}</h4>
|
||||||
<div class="all__sidebar-item-post dark_image">
|
<div class="all__sidebar-item-post dark_image">
|
||||||
@foreach($recentSuccesses as $success)
|
@foreach($recentSuccesses as $success)
|
||||||
<div class="post__item">
|
<div class="post__item">
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -11,6 +11,7 @@ use App\Http\Controllers\NewsPageController;
|
|||||||
use App\Http\Controllers\OurSolutionPageController;
|
use App\Http\Controllers\OurSolutionPageController;
|
||||||
use App\Http\Controllers\Web\SuccessPageController;
|
use App\Http\Controllers\Web\SuccessPageController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
use Illuminate\Support\Facades\Session;
|
||||||
|
|
||||||
// Homepage...
|
// Homepage...
|
||||||
Route::get('/', [HomePageController::class, 'index'])->name('home');
|
Route::get('/', [HomePageController::class, 'index'])->name('home');
|
||||||
@@ -48,3 +49,10 @@ Route::post('contact', [ContactPageController::class, 'store'])->name('contact.s
|
|||||||
// Legal pages...
|
// Legal pages...
|
||||||
Route::get('terms-and-conditions', [LegalPageController::class, 'terms'])->name('terms');
|
Route::get('terms-and-conditions', [LegalPageController::class, 'terms'])->name('terms');
|
||||||
Route::get('privacy-and-policy', [LegalPageController::class, 'privacy'])->name('privacy');
|
Route::get('privacy-and-policy', [LegalPageController::class, 'privacy'])->name('privacy');
|
||||||
|
|
||||||
|
// Language Switcher
|
||||||
|
Route::get('locale/{locale}', function ($locale) {
|
||||||
|
Session::put('locale', $locale);
|
||||||
|
|
||||||
|
return redirect()->back();
|
||||||
|
})->name('locale.switch');
|
||||||
|
|||||||
Reference in New Issue
Block a user