Saltar al contenido
← Volver a proyectos

Filament Translation Manager

Translation manager for Filament: edit app, JSON and vendor package translations from the panel, filter the keys missing per locale and export the result back to lang files.

Versión: v3 v4 v5 · branch: 3.x

Filament Translation Manager

#Filament Translation Manager

Buy Me A Coffee

Latest Version on Packagist Tests Total Downloads License

Edit your application's translations from the Filament panel — including the lines of every installed package (Filament itself, your plugins, validation…) — find the keys missing in each locale, and export the result back to lang/ so it lives in Git.

Built on jeffersongoncalves/laravel-translation-manager: the lang files stay the source of truth and the panel only stores overrides, laid over the files at runtime.

#Why another translation manager

  • Vendor translations, not only yours. Package namespaces (filament-panels::, filament-actions::, any plugin) are scanned and editable, nested groups (pages/dashboard) included. Exporting writes them to lang/vendor/{package}/…, the files Laravel already lays over the package's own.
  • Files stay the source of truth. No import step that copies everything into the database: unedited keys keep coming from the files, so a composer update that changes a package's wording is picked up.
  • Missing keys per locale, from the table filter.
  • Filament 3, 4 and 5, one branch each.

#Compatibility

Branch Filament Package version
1.x 3.x ^1.0
2.x 4.x ^2.0
3.x 5.x ^3.0

#Installation

composer require jeffersongoncalves/filament-translation-manager:"^3.0"
php artisan migrate
php artisan translation-manager:scan

#Usage

Add the plugin to your panel provider:

use JeffersonGoncalves\Filament\TranslationManager\TranslationManagerPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            TranslationManagerPlugin::make(),
        ]);
}

Then open Translations:

Feature
Table One row per key: namespace (app for your own lines), group (json for lang/{locale}.json), key and the value per locale. Overridden values are highlighted. Locale columns other than the current and fallback locale are hidden by default — toggle them on.
Search Matches keys, file values and overrides.
Filters Namespace, missing in a locale, overridden or not.
Edit A field per locale; the placeholder shows the file value. Leave a field empty to keep the file value.
Revert to file Drops the overrides of a line.
Scan lang files Re-reads the files (after adding keys or installing packages). Overrides are never touched.
Export to lang files Writes the overrides into lang/ (all or some locales), optionally removing them from the database afterwards.

#Customization

TranslationManagerPlugin::make()
    ->navigationGroup('Settings')
    ->navigationSort(10),

Locales, scanned namespaces, table name and cache store are configured in laravel-translation-manager — see its configuration. Excluding the big Filament namespaces you don't plan to edit keeps the table small:

// config/translation-manager.php
'namespaces' => [
    'include' => [],
    'exclude' => ['filament-forms', 'filament-tables', 'filament-query-builder'],
],

#Authorization

The resource follows Filament's usual rules: register a policy for JeffersonGoncalves\TranslationManager\Models\TranslationLine to decide who may view and edit translations.

#Requirements

  • PHP 8.2 or higher
  • Filament 5.x

#Testing

composer test

#Changelog

Please see CHANGELOG for more information on what has changed recently.

#Contributing

Please see CONTRIBUTING for details.

#Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

#Credits

#License

The MIT License (MIT). Please see License File for more information.

Nueva versión disponible.