Translation Manager
benriadh1/laravel-filament-translation-manager is a Filament v5 plugin that adds a clean translation management page with inline editing, filtering, prefix tabs, and optional status widget support.
Author:
Riadh Ben Ali
Documentation
- Highlights
- Requirements
- Install
- Register In Panel
- Quick Start
- Config Model
- Common Configuration Examples
- Prefix Tabs
- Translation Status Widget
- Example Workflow
- Localization
- Inspiration
- License
A Filament v5 translation management plugin for browsing, filtering, and updating Laravel translation keys from inside your admin panel, with inline editing, missing-translation workflows, prefix tabs, and optional status widget support.
Release version: 1.1.0
#Highlights
- Dedicated
Translation Managerpage in Filament navigation - Inline editing with
SaveandCancelactions - Search by translation key and translation content
- Multi-select filters for groups and locales
Only show missing translationsworkflow- Prefix tabs with per-group missing and total counters
- Optional dashboard widget for missing translation count
- Publishable config, views, and package language files
- English and French package UI translations
- Sensible locale fallback using
app.localeandapp.fallback_locale
#Requirements
- PHP
^8.2 - Filament
^5.0
#Install
composer require benriadh1/laravel-filament-translation-manager
Optional publish commands:
php artisan vendor:publish --tag=benriadh-filament-translation-manager-config
php artisan vendor:publish --tag=benriadh-filament-translation-manager-lang
php artisan vendor:publish --tag=benriadh-filament-translation-manager-views
#Register In Panel
use Benriadh1\FilamentTranslationManager\BenriadhFilamentTranslationManagerPlugin;
use Filament\Panel;
public function panel(Panel $panel): Panel
{
return $panel->plugins([
BenriadhFilamentTranslationManagerPlugin::make(),
]);
}
#Quick Start
After installation, open your Filament panel and go to Translation Manager.
By default, the package will:
- use
filament-translation-manager.localeswhen configured - otherwise fall back to
app.localeandapp.fallback_locale - scan your Laravel translation groups
- let your team search, filter, and update translations inline
This makes it useful for day-to-day content maintenance as well as translation QA before release.
#Config Model
Main config file: config/filament-translation-manager.php
<?php
use Filament\Support\Icons\Heroicon;
return [
'locales' => [],
'gate' => null,
'ignore_groups' => [],
'navigation_sort' => null,
'navigation_group' => 'benriadh-filament-translation-manager::messages.navigation_group',
'prefix_tabs' => [
'sys' => 'System',
'acc' => 'Accounting',
],
'widget' => [
'enabled' => false,
'gate' => null,
'sort' => null,
],
'navigation_icon' => Heroicon::OutlinedLanguage,
];
Core keys:
locales: Managed locales. If empty, the package usesapp.localeandapp.fallback_locale.gate: Laravel ability used to authorize access to the manager page.ignore_groups: Translation groups excluded from the manager and widget counts.navigation_sort: Navigation sort order in Filament.navigation_group: Sidebar group label, as a translation key or plain string.prefix_tabs: Translation groups shown as dedicated quick-access tabs.widget: Controls the optional missing-translations widget.navigation_icon: Navigation icon for the page. Setnullto hide it.
#Common Configuration Examples
#Managed locales
'locales' => ['en', 'fr', 'de'],
#Authorization
'gate' => 'manage-translations',
#Ignore framework or system groups
'ignore_groups' => ['pagination', 'passwords'],
#Navigation placement
'navigation_group' => 'Settings',
'navigation_sort' => 90,
#Hide the navigation icon
'navigation_icon' => null,
#Prefix Tabs
Prefix tabs help surface important translation groups such as sys, acc, or any module-specific group used across your application.
Simple list format:
'prefix_tabs' => ['sys', 'acc'],
Custom label format:
'prefix_tabs' => [
'sys' => 'System Core',
'acc' => 'Accounting',
],
When a configured group exists in your language files, the manager shows:
- a dedicated tab for that group
- the total number of keys in that group
- the number of missing translations for the selected locales
Groups included in prefix tabs are separated from the default All listing so high-priority translation sets are easier to review.
#Translation Status Widget
Enable the widget to display the current number of missing translations:
'widget' => [
'enabled' => true,
'gate' => 'manage-translations',
'sort' => 10,
],
Notes:
- If
widget.gateisnull, the widget falls back to the maingatevalue. - Ignored groups are excluded from the widget count.
- The widget uses the same resolved locales as the manager page.
#Example Workflow
Imagine your application has a translation group called sys for shared UI labels used in a Companies resource.
#lang/en/sys.php
<?php
return [
'companies' => [
'title' => 'Companies',
'fields' => [
'name' => 'Company name',
'email' => 'Email',
],
'actions' => [
'create' => 'Create company',
'edit' => 'Edit company',
],
],
];
#Use the keys in your Filament resource
<?php
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
public static function form(Schema $schema): Schema
{
return $schema->components([
TextInput::make('name')
->label(__('sys.companies.fields.name'))
->required(),
TextInput::make('email')
->label(__('sys.companies.fields.email'))
->email(),
]);
}
#Add a dedicated tab for that group
'prefix_tabs' => [
'sys' => 'SYS',
],
Now the sys group appears as its own tab in Translation Manager, making those labels easier to audit and complete.
#Localization
The package ships with UI translations for:
resources/lang/en/messages.phpresources/lang/fr/messages.php
Publish them if you want to customize wording for your project:
php artisan vendor:publish --tag=benriadh-filament-translation-manager-lang
#Inspiration
- Plugin concept inspired by Laravel Filament Chained Translation Manager
#License
MIT. See LICENSE.md.
The author
From the same author
Notification Bell
This plugin adds a real-time notification bell UI to your admin panel. It provides a clean, familiar UX (like modern SaaS apps) for displaying, managing, and interacting with notifications directly inside Filament.
Author:
Riadh Ben Ali
BenRiadh Theme
A modern and customizable theme package for Filament, designed to enhance the visual experience of your admin panels with clean styling, flexible configuration, and seamless integration.
Author:
Riadh Ben Ali
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese
Spotlight Pro
Browse your Filament Panel with ease. Filament Spotlight Pro adds a Spotlight/Raycast like Command Palette to your Filament Panel.
Dennis Koch