Skip to content

Commit bd2bc81

Browse files
authored
feat: add localization to forms and tables (#116)
1 parent 2b069f7 commit bd2bc81

File tree

11 files changed

+149
-8
lines changed

11 files changed

+149
-8
lines changed

src/Filament/Resources/ComponentGroupResource.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,19 @@ public static function form(Form $form): Form
2525
->schema([
2626
Forms\Components\Section::make()->columns(2)->schema([
2727
Forms\Components\TextInput::make('name')
28+
->label(__('Name'))
2829
->required()
2930
->maxLength(255)
3031
->columnSpanFull(),
3132
Forms\Components\ToggleButtons::make('visible')
33+
->label(__('Visible'))
3234
->inline()
3335
->options(ResourceVisibilityEnum::class)
3436
->default(ResourceVisibilityEnum::guest)
3537
->required()
3638
->columnSpanFull(),
3739
Forms\Components\ToggleButtons::make('collapsed')
40+
->label(__('Collapsed'))
3841
->required()
3942
->inline()
4043
->options(ComponentGroupVisibilityEnum::class)
@@ -49,17 +52,22 @@ public static function table(Table $table): Table
4952
return $table
5053
->columns([
5154
Tables\Columns\TextColumn::make('name')
55+
->label(__('Name'))
5256
->searchable(),
5357
Tables\Columns\TextColumn::make('visible')
58+
->label(__('Visible'))
5459
->badge()
5560
->sortable(),
5661
Tables\Columns\TextColumn::make('collapsed')
62+
->label(__('Collapsed'))
5763
->sortable(),
5864
Tables\Columns\TextColumn::make('created_at')
65+
->label(__('Created at'))
5966
->dateTime()
6067
->sortable()
6168
->toggleable(isToggledHiddenByDefault: true),
6269
Tables\Columns\TextColumn::make('updated_at')
70+
->label(__('Updated at'))
6371
->dateTime()
6472
->sortable()
6573
->toggleable(isToggledHiddenByDefault: true),

src/Filament/Resources/ComponentResource.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,17 @@ public static function form(Form $form): Form
2323
->schema([
2424
Forms\Components\Section::make()->columns(2)->schema([
2525
Forms\Components\TextInput::make('name')
26+
->label(__('Name'))
2627
->required()
2728
->maxLength(255),
2829
Forms\Components\ToggleButtons::make('status')
30+
->label(__('Status'))
2931
->inline()
3032
->columnSpanFull()
3133
->options(ComponentStatusEnum::class)
3234
->required(),
3335
Forms\Components\MarkdownEditor::make('description')
36+
->label(__('Description'))
3437
->maxLength(255)
3538
->columnSpanFull(),
3639
Forms\Components\Select::make('component_group_id')
@@ -39,6 +42,7 @@ public static function form(Form $form): Form
3942
->preload()
4043
->label(__('Component Group')),
4144
Forms\Components\TextInput::make('link')
45+
->label(__('Link'))
4246
->url()
4347
->hint(__('An optional link to the component.')),
4448
]),
@@ -57,28 +61,36 @@ public static function table(Table $table): Table
5761
return $table
5862
->columns([
5963
Tables\Columns\TextColumn::make('name')
64+
->label(__('Name'))
6065
->searchable(),
6166
Tables\Columns\TextColumn::make('status')
67+
->label(__('Status'))
6268
->badge()
6369
->sortable(),
6470
Tables\Columns\TextColumn::make('order')
71+
->label(__('Order'))
6572
->numeric()
6673
->sortable()
6774
->toggleable(isToggledHiddenByDefault: true),
6875
Tables\Columns\TextColumn::make('group.name')
76+
->label(__('Group'))
6977
->sortable(),
7078
Tables\Columns\IconColumn::make('enabled')
79+
->label(__('Enabled'))
7180
->boolean()
7281
->toggleable(isToggledHiddenByDefault: false),
7382
Tables\Columns\TextColumn::make('created_at')
83+
->label(__('Created at'))
7484
->dateTime()
7585
->sortable()
7686
->toggleable(isToggledHiddenByDefault: true),
7787
Tables\Columns\TextColumn::make('updated_at')
88+
->label(__('Updated at'))
7889
->dateTime()
7990
->sortable()
8091
->toggleable(isToggledHiddenByDefault: true),
8192
Tables\Columns\TextColumn::make('deleted_at')
93+
->label(__('Deleted at'))
8294
->dateTime()
8395
->sortable()
8496
->toggleable(isToggledHiddenByDefault: true),

src/Filament/Resources/ComponentResource/RelationManagers/ComponentsRelationManager.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,37 @@
88
use Filament\Resources\RelationManagers\RelationManager;
99
use Filament\Tables;
1010
use Filament\Tables\Table;
11+
use Illuminate\Database\Eloquent\Model;
1112

1213
class ComponentsRelationManager extends RelationManager
1314
{
1415
protected static string $relationship = 'components';
1516

17+
public static function getTitle(Model $ownerRecord, string $pageClass): string
18+
{
19+
return __('Components');
20+
}
21+
1622
public function form(Form $form): Form
1723
{
1824
return $form
1925
->schema([
2026
Forms\Components\TextInput::make('name')
27+
->label(__('Name'))
2128
->required()
2229
->maxLength(255),
2330
Forms\Components\ToggleButtons::make('status')
31+
->label(__('Status'))
2432
->inline()
2533
->columnSpanFull()
2634
->options(ComponentStatusEnum::class)
2735
->required(),
2836
Forms\Components\MarkdownEditor::make('description')
37+
->label(__('Description'))
2938
->maxLength(255)
3039
->columnSpanFull(),
3140
Forms\Components\TextInput::make('link')
41+
->label(__('Link'))
3242
->url()
3343
->hint(__('An optional link to the component.')),
3444
]);
@@ -38,12 +48,17 @@ public function table(Table $table): Table
3848
{
3949
return $table
4050
->recordTitleAttribute('name')
51+
->modelLabel(__('Component'))
52+
->pluralModelLabel(__('Components'))
4153
->columns([
42-
Tables\Columns\TextColumn::make('name'),
54+
Tables\Columns\TextColumn::make('name')
55+
->label(__('Name')),
4356
Tables\Columns\TextColumn::make('status')
57+
->label(__('Status'))
4458
->badge()
4559
->sortable(),
4660
Tables\Columns\IconColumn::make('enabled')
61+
->label(__('Enabled'))
4762
->boolean()
4863
->toggleable(isToggledHiddenByDefault: false),
4964
])

src/Filament/Resources/IncidentResource.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,24 @@ public static function form(Form $form): Form
3030
->schema([
3131
Section::make()->schema([
3232
Forms\Components\TextInput::make('name')
33+
->label(__('Name'))
3334
->required()
3435
->maxLength(255),
3536
Forms\Components\ToggleButtons::make('status')
37+
->label(__('Status'))
3638
->inline()
3739
->columnSpanFull()
3840
->options(IncidentStatusEnum::class)
3941
->required(),
4042
Forms\Components\MarkdownEditor::make('message')
43+
->label(__('Message'))
4144
->required()
4245
->columnSpanFull(),
4346
Forms\Components\DateTimePicker::make('occurred_at')
47+
->label(__('Occurred at'))
4448
->helperText(__('The incident\'s created timestamp will be used if left empty.')),
4549
Forms\Components\ToggleButtons::make('visible')
50+
->label(__('Visible'))
4651
->inline()
4752
->options(ResourceVisibilityEnum::class)
4853
->default(ResourceVisibilityEnum::guest)
@@ -85,39 +90,48 @@ public static function table(Table $table): Table
8590
return $table
8691
->columns([
8792
Tables\Columns\TextColumn::make('name')
93+
->label(__('Name'))
8894
->searchable(),
8995
Tables\Columns\TextColumn::make('status')
96+
->label(__('Status'))
9097
->sortable()
9198
->badge(),
9299
Tables\Columns\TextColumn::make('visible')
100+
->label(__('Visible'))
93101
->sortable()
94102
->badge(),
95103
Tables\Columns\IconColumn::make('stickied')
104+
->label(__('Stickied'))
96105
->toggleable(isToggledHiddenByDefault: true)
97106
->boolean(),
98107
Tables\Columns\TextColumn::make('occurred_at')
108+
->label(__('Occurred at'))
99109
->dateTime()
100110
->sortable(),
101111
Tables\Columns\IconColumn::make('notifications')
102112
->label(__('Notified Subscribers'))
103113
->boolean()
104114
->toggleable(isToggledHiddenByDefault: true),
105115
Tables\Columns\TextColumn::make('created_at')
116+
->label(__('Created at'))
106117
->dateTime()
107118
->sortable()
108119
->toggleable(isToggledHiddenByDefault: false),
109120
Tables\Columns\TextColumn::make('updated_at')
121+
->label(__('Updated at'))
110122
->dateTime()
111123
->sortable()
112124
->toggleable(isToggledHiddenByDefault: true),
113125
Tables\Columns\TextColumn::make('deleted_at')
126+
->label(__('Deleted at'))
114127
->dateTime()
115128
->sortable()
116129
->toggleable(isToggledHiddenByDefault: true),
117130
])
118131
->filters([
119132
Tables\Filters\TrashedFilter::make(),
120133
Tables\Filters\SelectFilter::make('status')
134+
->label(__('Status'))
121135
->options(IncidentStatusEnum::class),
122136
])
123137
->actions([
@@ -135,8 +149,11 @@ public static function table(Table $table): Table
135149
->send();
136150
})
137151
->form([
138-
Forms\Components\MarkdownEditor::make('message')->required(),
152+
Forms\Components\MarkdownEditor::make('message')
153+
->label(__('Message'))
154+
->required(),
139155
Forms\Components\ToggleButtons::make('status')
156+
->label(__('Status'))
140157
->options(IncidentStatusEnum::class)
141158
->inline()
142159
->required(),

src/Filament/Resources/IncidentResource/RelationManagers/ComponentsRelationManager.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,26 @@
99
use Filament\Resources\RelationManagers\RelationManager;
1010
use Filament\Tables;
1111
use Filament\Tables\Table;
12+
use Illuminate\Database\Eloquent\Model;
1213

1314
class ComponentsRelationManager extends RelationManager
1415
{
1516
protected static string $relationship = 'components';
1617

18+
public static function getTitle(Model $ownerRecord, string $pageClass): string
19+
{
20+
return __('Components');
21+
}
22+
1723
public function form(Form $form): Form
1824
{
1925
return $form
2026
->schema([
2127
Forms\Components\TextInput::make('name')
28+
->label(__('Name'))
2229
->searchable(),
2330
Forms\Components\ToggleButtons::make('status')
31+
->label(__('Status'))
2432
->inline()
2533
->options(ComponentStatusEnum::class)
2634
->required(),
@@ -31,9 +39,13 @@ public function table(Table $table): Table
3139
{
3240
return $table
3341
->recordTitleAttribute('name')
42+
->modelLabel(__('Component'))
43+
->pluralModelLabel(__('Components'))
3444
->columns([
35-
Tables\Columns\TextColumn::make('name'),
45+
Tables\Columns\TextColumn::make('name')
46+
->label(__('Name')),
3647
Tables\Columns\TextColumn::make('status')
48+
->label(__('Status'))
3749
->badge()
3850
->sortable(),
3951
])
@@ -45,6 +57,7 @@ public function table(Table $table): Table
4557
->form(fn (Tables\Actions\AttachAction $action): array => [
4658
$action->getRecordSelect(),
4759
Forms\Components\ToggleButtons::make('status')
60+
->label(__('Status'))
4861
->inline()
4962
->columnSpanFull()
5063
->options(ComponentStatusEnum::class)

src/Filament/Resources/IncidentResource/RelationManagers/IncidentUpdatesRelationManager.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,38 +8,50 @@
88
use Filament\Resources\RelationManagers\RelationManager;
99
use Filament\Tables;
1010
use Filament\Tables\Table;
11+
use Illuminate\Database\Eloquent\Model;
1112

1213
class IncidentUpdatesRelationManager extends RelationManager
1314
{
1415
protected static string $relationship = 'incidentUpdates';
1516

17+
public static function getTitle(Model $ownerRecord, string $pageClass): string
18+
{
19+
return __('Incident Updates');
20+
}
21+
1622
public function form(Form $form): Form
1723
{
1824
return $form
1925
->schema([
2026
Forms\Components\MarkdownEditor::make('message')
27+
->label(__('Message'))
2128
->required()
2229
->columnSpanFull(),
2330
Forms\Components\Select::make('user_id')
31+
->label(__('User'))
2432
->hint(__('The user who reported the incident.'))
2533
->relationship('user', 'name')
2634
->searchable()
2735
->preload()
2836
->createOptionForm([
2937
Forms\Components\TextInput::make('name')
38+
->label(__('Name'))
3039
->required()
3140
->maxLength(255),
3241
Forms\Components\TextInput::make('email')
42+
->label(__('Email'))
3343
->required()
3444
->email()
3545
->maxLength(255),
3646
Forms\Components\TextInput::make('password')
47+
->label(__('Password'))
3748
->required()
3849
->password()
3950
->confirmed()
4051
->minLength(8),
4152
]),
4253
Forms\Components\ToggleButtons::make('status')
54+
->label(__('Status'))
4355
->inline()
4456
->columnSpanFull()
4557
->options(IncidentStatusEnum::class)
@@ -51,26 +63,34 @@ public function table(Table $table): Table
5163
{
5264
return $table
5365
->recordTitleAttribute('title')
66+
->modelLabel(__('Incident Update'))
67+
->pluralModelLabel(__('Incident Updates'))
5468
->columns([
5569
Tables\Columns\TextColumn::make('incident.name')
70+
->label(__('Incident'))
5671
->numeric()
5772
->sortable(),
5873
Tables\Columns\TextColumn::make('status')
74+
->label(__('Status'))
5975
->badge()
6076
->sortable(),
6177
Tables\Columns\TextColumn::make('user.name')
78+
->label(__('User'))
6279
->sortable(),
6380
Tables\Columns\TextColumn::make('created_at')
81+
->label(__('Created at'))
6482
->dateTime()
6583
->sortable()
6684
->toggleable(isToggledHiddenByDefault: true),
6785
Tables\Columns\TextColumn::make('updated_at')
86+
->label(__('Updated at'))
6887
->dateTime()
6988
->sortable()
7089
->toggleable(isToggledHiddenByDefault: true),
7190
])
7291
->filters([
7392
Tables\Filters\SelectFilter::make('status')
93+
->label(__('Status'))
7494
->options(IncidentStatusEnum::class),
7595
])
7696
->headerActions([

0 commit comments

Comments
 (0)