© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•3y ago•
4 replies
Daniel Plomp

Translate labels in TextColumn->badge()

I used to have this code in V2:

Tables\Columns\BadgeColumn::make('status')
  ->getStateUsing(function (Model $record): string {
      return $record->status;
  })
  ->label(__('strings.fields.status'))
  ->icons([
      'heroicon-o-x-mark',
      'heroicon-o-document' => 'draft',
      'heroicon-o-clock' => 'reviewing',
      'heroicon-o-check-circle' => 'published',
  ])
  ->colors([
      'secondary' => 'draft',
      'warning' => 'reviewing',
      'success' => 'published',
  ])
  ->enum([
      'draft' => __('strings.statuses.draft'),
      'reviewing' => __('strings.statuses.reviewing'),
      'published' => __('strings.statuses.published'),
  ]),
Tables\Columns\BadgeColumn::make('status')
  ->getStateUsing(function (Model $record): string {
      return $record->status;
  })
  ->label(__('strings.fields.status'))
  ->icons([
      'heroicon-o-x-mark',
      'heroicon-o-document' => 'draft',
      'heroicon-o-clock' => 'reviewing',
      'heroicon-o-check-circle' => 'published',
  ])
  ->colors([
      'secondary' => 'draft',
      'warning' => 'reviewing',
      'success' => 'published',
  ])
  ->enum([
      'draft' => __('strings.statuses.draft'),
      'reviewing' => __('strings.statuses.reviewing'),
      'published' => __('strings.statuses.published'),
  ]),


Now that the BadgeColumn is deprecated, how can I translate labels as in the example above? There is no
enum()
enum()
method anymore.
This is my updated code:

Tables\Columns\TextColumn::make('status')
  ->label(__('strings.fields.status'))
  ->badge()
  ->color(fn (string $state): string => match ($state) {
      'draft' => 'secondary',
      'reviewing' => 'warning',
      'published' => 'success',
  })
  ->icons(['heroicon-o-x-mark',
      'heroicon-o-document' => 'draft',
      'heroicon-o-clock' => 'reviewing',
      'heroicon-o-check-circle' => 'published']),
Tables\Columns\TextColumn::make('status')
  ->label(__('strings.fields.status'))
  ->badge()
  ->color(fn (string $state): string => match ($state) {
      'draft' => 'secondary',
      'reviewing' => 'warning',
      'published' => 'success',
  })
  ->icons(['heroicon-o-x-mark',
      'heroicon-o-document' => 'draft',
      'heroicon-o-clock' => 'reviewing',
      'heroicon-o-check-circle' => 'published']),
Solution
Particularly:
https://filamentphp.com/docs/3.x/tables/columns/text#custom-formatting
Text column - Table Builder - Filament
Jump to solution
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
20,307Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

Multicolor TextColumn Badge
FilamentFFilament / ❓┊help
13mo ago
translate badge column
FilamentFFilament / ❓┊help
2y ago
Always translate all labels?
FilamentFFilament / ❓┊help
2y ago
JSON TextColumn formatStateUsing badge repeats
FilamentFFilament / ❓┊help
3y ago