locale fix

This commit is contained in:
2025-11-13 11:49:41 +05:00
parent c2e9198dbc
commit 294ec0144d
7 changed files with 304 additions and 133 deletions

View File

@@ -2,7 +2,19 @@
namespace App\Filament\Clusters\VisaMasterPayments\Resources\VisaMasterPaymentOrders\Schemas; namespace App\Filament\Clusters\VisaMasterPayments\Resources\VisaMasterPaymentOrders\Schemas;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
use App\Modules\Region\Repositories\RegionRepository;
use App\Modules\TurkmenPassport\Repositories\TurkmenPassportRepository;
use App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder;
use Filament\Infolists\Components\IconEntry;
use Filament\Infolists\Components\SpatieMediaLibraryImageEntry;
use Filament\Infolists\Components\TextEntry;
use Filament\Schemas\Components\Fieldset;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Components\Tabs;
use Filament\Schemas\Components\Tabs\Tab;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
class VisaMasterPaymentOrderInfolist class VisaMasterPaymentOrderInfolist
{ {
@@ -10,7 +22,187 @@ class VisaMasterPaymentOrderInfolist
{ {
return $schema return $schema
->components([ ->components([
// Section::make(__('Order details'))
->columnSpanFull()
->columns(4)
->components([
TextEntry::make('type')
->label(__('Payment type'))
->formatStateUsing(fn ($state) => VisaMasterPaymentOrder::applicationTypes()[$state] ?? $state)
->inlineLabel(true)
->badge(),
TextEntry::make('status')
->label(__('Status'))
->formatStateUsing(fn ($state) => OrderStatusRepository::statusValues()[$state] ?? $state)
->badge()
->color(OrderStatusRepository::statusColorMatching())
->columnSpan(2),
IconEntry::make('paid')
->label(sprintf('%s (%s)', __('Paid'), __('This month')))
->boolean()
->trueIcon(Heroicon::CheckCircle)
->falseIcon(Heroicon::XCircle)
->trueColor('success')
->falseColor('danger'),
TextEntry::make('notes')
->label(__('Bellik'))
->html()
->columnSpanFull()
->placeholder('-'),
]),
Tabs::make('Order Information')
->tabs([
Tab::make(__('Order type and bank'))
->schema([
Fieldset::make(__('Location'))
->schema([
TextEntry::make('region')
->label(__('Region'))
->formatStateUsing(fn ($state) => RegionRepository::values()[$state] ?? $state),
TextEntry::make('branch.name')
->label(__('Branch'))
->placeholder('-'),
]),
]),
Tab::make(__('Payment sender data'))
->columns(8)
->schema([
TextEntry::make('sender_full_name')
->label(__('Name, Surname, Patronic name'))
->columnSpan(4)
->placeholder('-'),
TextEntry::make('sender_passport')
->label(__('Passport serie and number'))
->formatStateUsing(function ($record) {
$serie = TurkmenPassportRepository::values()[$record->sender_passport_serie] ?? $record->sender_passport_serie;
return $serie.' '.$record->sender_passport_number;
})
->columnSpan(2)
->placeholder('-'),
TextEntry::make('phone')
->label(__('Phone'))
->formatStateUsing(fn ($state) => '+993 '.$state)
->columnSpan(2)
->placeholder('-'),
TextEntry::make('sender_deposit_account')
->label(__('Deposit account'))
->columnSpan(4)
->placeholder('-'),
TextEntry::make('address')
->label(__('Address'))
->columnSpan(4)
->placeholder('-'),
Section::make(__('Files'))
->description('PNG, JPEG, PDF')
->columnSpanFull()
->columns(2)
->schema([
SpatieMediaLibraryImageEntry::make('sender_passport_local')
->collection('sender_passport_local')
->label(__('Ugradyja degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_passport_international')
->collection('sender_passport_international')
->label(__('Ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportynyň asyl görnüşi we göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_travel_stamp_on_passport')
->collection('sender_travel_stamp_on_passport')
->label(__('Ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky daşary döwletine gidendigi we daşary döwlete barandygy baradaky (ştampyň) bellenen sahypasynyň göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_proof_of_kinship')
->collection('sender_proof_of_kinship')
->label(__('Ugradyjynyň we kabul edijiniň (talybyň) özara garyndaşlyk derejesini tassyklaýjy resminamalarynyň göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_passport_local_old')
->collection('sender_passport_local_old')
->label(__('Ugradyjy we kabul ediji (talyp) 2015-nji ýyldan soňra Türkmenistanyň raýatynyň pasportyny ikinji gezek alan bolsa, onda birinji gezek alan pasportynyň seriýasy baradaky maglumat')),
SpatieMediaLibraryImageEntry::make('sender_passport_local_old_replacement')
->collection('sender_passport_local_old_replacement')
->label(__('Ugradyjy we kabul ediji (talyp) 2015-nji ýyldan soňra Türkmenistanyň raýatynyň pasportyny ikinji gezek alandan soňra birinji gezek alan pasportynyň seriýasy baradaky maglumaty bilmeýän ,bolsa onda polisiýanyň degişli edaralaryndan birinji alan pasportynyň seriýasy baradaky güwänamasy')),
]),
]),
Tab::make(__('Payee information'))
->columns(8)
->schema([
TextEntry::make('reciever_full_name')
->label(__('Name, Surname, Patronic name'))
->columnSpan(5)
->placeholder('-'),
TextEntry::make('reciever_passport')
->label(__('Passport serie and number'))
->formatStateUsing(function ($record) {
$serie = TurkmenPassportRepository::values()[$record->reciever_passport_serie] ?? $record->reciever_passport_serie;
return $serie.' '.$record->reciever_passport_number;
})
->columnSpan(3)
->placeholder('-'),
Section::make(__('Files'))
->description('PNG, JPEG, PDF')
->columnSpanFull()
->columns(2)
->schema([
SpatieMediaLibraryImageEntry::make('receiver_requisite')
->collection('receiver_requisite')
->label(__('Talyba degişli walýuta "VISA" kartyň rekwizitleri'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_document_stating_he_is_studying')
->collection('receiver_document_stating_he_is_studying')
->label(__('Talybyň daşary ýurt döwletiniň ýokary okuw mekdebinde okaýandygy baradaky güwänamasy'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_ticket')
->collection('receiver_ticket')
->label(__('Talybyň bilediniň göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_passport_local')
->collection('receiver_passport_local')
->label(__('Talyba degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_passport_international')
->collection('receiver_passport_international')
->label(__('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin (zagran) pasportynyň göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_visa')
->collection('receiver_visa')
->label(__('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky daşary ýurtda galyp okap bilýändigi baradaky berlen möhleti hereket edýän rugsatnamasynyň (wizasynyň) bellenen sahypasynyň göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_travel_stamp_on_passport')
->collection('receiver_travel_stamp_on_passport')
->label(__('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky Türkmenistandan çykandygy we daşary ýurt döwletine girendigi baradaky ştamplaryň (seneli ştampyň) bellenen sahypasynyň göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_document_stating_he_is_studying_2')
->collection('receiver_document_stating_he_is_studying_2')
->label(__('Talybyň daşary ýurt döwletiniň ýokary okuw mekdebinde okaýandygy baradaky güwänamasyndaky maglumatyň doly takyk däl ýagdaýynda takyk däl maglumatyň sebäpleri baradaky daşary ýurt döwletiniň ýokary okuw mekdebinden haty'))
->columnSpan(1),
]),
]),
])->columnSpanFull(),
]); ]);
} }
} }

View File

@@ -8,6 +8,9 @@ use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Spatie\Translatable\HasTranslations; use Spatie\Translatable\HasTranslations;
use BezhanSalleh\LanguageSwitch\LanguageSwitch;
use BezhanSalleh\LanguageSwitch\Events\LocaleChanged;
use Illuminate\Support\Facades\Event;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
{ {
@@ -33,6 +36,17 @@ class AppServiceProvider extends ServiceProvider
->locales(array_keys(baseLocales())); ->locales(array_keys(baseLocales()));
}); });
LanguageSwitch::configureUsing(function (LanguageSwitch $switch) {
$switch
->locales(['tk', 'en', 'ru']);
});
Event::listen(function (LocaleChanged $event) {
if (array_key_exists($event->locale, baseLocales())) {
user()->update(['locale' => $event->locale]);
}
});
/** /**
* Order by translation for spatie/laravel-translatable * Order by translation for spatie/laravel-translatable
* *

View File

@@ -5,6 +5,7 @@ namespace App\Providers\Filament;
use App\Http\Middleware\EnsureProfileIsFilled; use App\Http\Middleware\EnsureProfileIsFilled;
use App\Livewire\UserProfileFields; use App\Livewire\UserProfileFields;
use App\Modules\BaseAuth\Middleware\RedirectIfUserPhoneIsUnVerfied; use App\Modules\BaseAuth\Middleware\RedirectIfUserPhoneIsUnVerfied;
use App\Modules\BaseLocale\Middleware\SetLocale;
use BezhanSalleh\FilamentShield\FilamentShieldPlugin; use BezhanSalleh\FilamentShield\FilamentShieldPlugin;
use CraftForge\FilamentLanguageSwitcher\FilamentLanguageSwitcherPlugin; use CraftForge\FilamentLanguageSwitcher\FilamentLanguageSwitcherPlugin;
use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\Authenticate;
@@ -63,13 +64,6 @@ class WorkPanelProvider extends PanelProvider
FilamentShieldPlugin::make() FilamentShieldPlugin::make()
->navigationGroup('Roles and permissions'), ->navigationGroup('Roles and permissions'),
FilamentLanguageSwitcherPlugin::make()
->locales([
['code' => 'tk', 'name' => 'Turkmen', 'flag' => 'tm'],
['code' => 'en', 'name' => 'English', 'flag' => 'us'],
['code' => 'ru', 'name' => 'Russian', 'flag' => 'ru'],
]),
FilamentEditProfilePlugin::make() FilamentEditProfilePlugin::make()
->setTitle(__('My profile')) ->setTitle(__('My profile'))
->setNavigationLabel(__('My profile')) ->setNavigationLabel(__('My profile'))

View File

@@ -8,8 +8,8 @@
"require": { "require": {
"php": "^8.2", "php": "^8.2",
"abdulmajeed-jamaan/filament-translatable-tabs": "^4.0", "abdulmajeed-jamaan/filament-translatable-tabs": "^4.0",
"bezhansalleh/filament-language-switch": "^4.0",
"bezhansalleh/filament-shield": "^4.0", "bezhansalleh/filament-shield": "^4.0",
"craft-forge/filament-language-switcher": "^1.0",
"filament/filament": "^4.0", "filament/filament": "^4.0",
"filament/spatie-laravel-media-library-plugin": "^4.0", "filament/spatie-laravel-media-library-plugin": "^4.0",
"joaopaulolndev/filament-edit-profile": "^2.0", "joaopaulolndev/filament-edit-profile": "^2.0",

214
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "584315664487bcdd32d267ffebbc8819", "content-hash": "d2a574fdd5c95390e8843b9dbd8659e5",
"packages": [ "packages": [
{ {
"name": "abdulmajeed-jamaan/filament-translatable-tabs", "name": "abdulmajeed-jamaan/filament-translatable-tabs",
@@ -142,6 +142,91 @@
}, },
"time": "2025-07-30T15:45:57+00:00" "time": "2025-07-30T15:45:57+00:00"
}, },
{
"name": "bezhansalleh/filament-language-switch",
"version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/bezhanSalleh/filament-language-switch.git",
"reference": "e4d9a6fc5ed36977da6bf93fbc1a231429b91e6f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/bezhanSalleh/filament-language-switch/zipball/e4d9a6fc5ed36977da6bf93fbc1a231429b91e6f",
"reference": "e4d9a6fc5ed36977da6bf93fbc1a231429b91e6f",
"shasum": ""
},
"require": {
"filament/filament": "^4.0",
"illuminate/support": "^11.28|^12.0",
"php": "^8.2",
"spatie/laravel-package-tools": "^1.9"
},
"require-dev": {
"larastan/larastan": "^3.0",
"laravel/pint": "^1.0",
"nunomaduro/collision": "^8.0",
"orchestra/testbench": "^9.0|^10.0",
"pestphp/pest": "^2.0|^3.0",
"pestphp/pest-plugin-laravel": "^2.0|^3.0",
"pestphp/pest-plugin-livewire": "^2.0|^3.0",
"pestphp/pest-plugin-type-coverage": "^2.0|^3.5",
"phpstan/extension-installer": "^1.4",
"phpstan/phpstan": "^1.0|^2.1",
"phpstan/phpstan-deprecation-rules": "^1.0|^2.0",
"phpstan/phpstan-phpunit": "^1.0|^2.0",
"phpunit/phpunit": "^10.1|^11.0",
"rector/rector": "^2.1",
"spatie/laravel-ray": "^1.40"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"BezhanSalleh\\LanguageSwitch\\LanguageSwitchServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"BezhanSalleh\\LanguageSwitch\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Bezhan Salleh",
"email": "bezhan_salleh@yahoo.com",
"role": "Developer"
}
],
"description": "Zero config Language Switch(Changer/Localizer) plugin for filamentphp admin",
"homepage": "https://github.com/bezhansalleh/filament-language-switch",
"keywords": [
"bezhanSalleh",
"filament-language-changer",
"filament-language-switch",
"filament-locale-changer",
"filament-localizer",
"filament-plugin",
"filamentphp",
"laravel"
],
"support": {
"issues": "https://github.com/bezhanSalleh/filament-language-switch/issues",
"source": "https://github.com/bezhanSalleh/filament-language-switch/tree/4.0.0"
},
"funding": [
{
"url": "https://github.com/bezhanSalleh",
"type": "github"
}
],
"time": "2025-08-19T22:55:31+00:00"
},
{ {
"name": "bezhansalleh/filament-plugin-essentials", "name": "bezhansalleh/filament-plugin-essentials",
"version": "1.0.0", "version": "1.0.0",
@@ -901,67 +986,6 @@
], ],
"time": "2025-08-20T19:15:30+00:00" "time": "2025-08-20T19:15:30+00:00"
}, },
{
"name": "craft-forge/filament-language-switcher",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/craft-forge/filament-language-switcher.git",
"reference": "cd3beffb18110319f43f9fd32decb4a038a8feec"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/craft-forge/filament-language-switcher/zipball/cd3beffb18110319f43f9fd32decb4a038a8feec",
"reference": "cd3beffb18110319f43f9fd32decb4a038a8feec",
"shasum": ""
},
"require": {
"filament/filament": "^3.0|^4.0",
"php": "^8.1",
"spatie/laravel-package-tools": "^1.16",
"stijnvanouplines/blade-country-flags": "^1.0.6"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"CraftForge\\FilamentLanguageSwitcher\\FilamentLanguageSwitcherServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"CraftForge\\FilamentLanguageSwitcher\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taras Koval",
"email": "taraskovaldev@gmail.com",
"homepage": "https://github.com/taras-koval"
}
],
"description": "Zero-config language switcher for Filament admin panels. Automatically scans available translations, renders dropdown with country flags, persists selection via sessions.",
"homepage": "https://github.com/craft-forge/filament-language-switcher",
"keywords": [
"admin",
"filament",
"i18n",
"language",
"laravel",
"localization",
"switcher"
],
"support": {
"issues": "https://github.com/craft-forge/filament-language-switcher/issues",
"source": "https://github.com/craft-forge/filament-language-switcher"
},
"time": "2025-09-16T11:01:08+00:00"
},
{ {
"name": "danharrin/date-format-converter", "name": "danharrin/date-format-converter",
"version": "v0.3.1", "version": "v0.3.1",
@@ -7393,60 +7417,6 @@
}, },
"time": "2025-08-04T02:33:41+00:00" "time": "2025-08-04T02:33:41+00:00"
}, },
{
"name": "stijnvanouplines/blade-country-flags",
"version": "1.0.6",
"source": {
"type": "git",
"url": "https://github.com/stijnvanouplines/blade-country-flags.git",
"reference": "a1503171f666408398824b4dce0eea0e587ed6bc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/stijnvanouplines/blade-country-flags/zipball/a1503171f666408398824b4dce0eea0e587ed6bc",
"reference": "a1503171f666408398824b4dce0eea0e587ed6bc",
"shasum": ""
},
"require": {
"blade-ui-kit/blade-icons": "^1.0",
"illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0",
"php": "^7.4|^8.0"
},
"require-dev": {
"orchestra/testbench": "^6.18|^8.0|^9.0|^10.0",
"pestphp/pest": "^1.4|^2.34|^3.0",
"spatie/pest-plugin-snapshots": "^1.0|^2.1"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"StijnVanouplines\\BladeCountryFlags\\BladeCountryFlagsServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"StijnVanouplines\\BladeCountryFlags\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "A package to easily make use of country flags in your Laravel Blade views.",
"homepage": "https://github.com/stijnvanouplines/blade-country-flags",
"keywords": [
"blade",
"country flags",
"laravel"
],
"support": {
"issues": "https://github.com/stijnvanouplines/blade-country-flags/issues",
"source": "https://github.com/stijnvanouplines/blade-country-flags/tree/1.0.6"
},
"time": "2025-04-22T06:40:23+00:00"
},
{ {
"name": "symfony/clock", "name": "symfony/clock",
"version": "v7.3.0", "version": "v7.3.0",
@@ -8139,16 +8109,16 @@
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v7.3.6", "version": "v7.3.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c" "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/6379e490d6ecfc5c4224ff3a754b90495ecd135c", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/db488a62f98f7a81d5746f05eea63a74e55bb7c4",
"reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c", "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -8198,7 +8168,7 @@
"description": "Defines an object-oriented layer for the HTTP specification", "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.3.6" "source": "https://github.com/symfony/http-foundation/tree/v7.3.7"
}, },
"funding": [ "funding": [
{ {
@@ -8218,7 +8188,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-11-06T11:05:57+00:00" "time": "2025-11-08T16:41:12+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",

View File

@@ -685,5 +685,5 @@
"Legal Marriage": "Raýat nika", "Legal Marriage": "Raýat nika",
"School": "Orta bilim", "School": "Orta bilim",
"School drop out": "Gutarylmadyk orta bilim", "School drop out": "Gutarylmadyk orta bilim",
"Unfinished high education": "Gutarylmadyk ýokary bilim", "Unfinished high education": "Gutarylmadyk ýokary bilim"
} }

View File

@@ -704,5 +704,6 @@
"Order details": "Sargyt barada", "Order details": "Sargyt barada",
"Name, Surname, Patronic name": "Ady, Familiýasy, Atasynyň ady", "Name, Surname, Patronic name": "Ady, Familiýasy, Atasynyň ady",
"Deposit account": "Goýum hasaby", "Deposit account": "Goýum hasaby",
"Files": "Faýllar" "Files": "Faýllar",
"Payment type": "Töleg görnüşi"
} }