PHPackages                             amzad/filament-translatable-group - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. amzad/filament-translatable-group

ActiveLibrary[Localization &amp; i18n](/categories/localization)

amzad/filament-translatable-group
=================================

Simplifying managing json based translation columns using grouped fields

1.0.0(2mo ago)013MITPHPCI passing

Since May 9Pushed 2mo agoCompare

[ Source](https://github.com/amzad78692/filament-translatable-group)[ Packagist](https://packagist.org/packages/amzad/filament-translatable-group)[ Docs](https://github.com/amzad/filament-translatable-group)[ GitHub Sponsors](https://github.com/amzad)[ RSS](/packages/amzad-filament-translatable-group/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (6)Versions (2)Used By (0)

Filament Translatable Group
===========================

[](#filament-translatable-group)

[![Latest Version on Packagist](https://camo.githubusercontent.com/148f535afad86c37d1541fb7fa5ce856137a1c12290dee02c47c036cf5425ba4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616d7a61642f66696c616d656e742d7472616e736c617461626c652d67726f75702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/amzad/filament-translatable-group)

Automatically generate side-by-side grouped fields for each locale — no tabs, just columns.

Works seamlessly with [spatie/laravel-translatable](https://github.com/spatie/laravel-translatable) and [lara-zeus/translatable-pro](https://larazeus.com/translatable-pro), but can be used standalone as well.

Installation
------------

[](#installation)

```
composer require amzad/filament-translatable-group
```

Then in any registered service provider `boot()` method configure the following:

```
use Amzad\FilamentTranslatableGroup\TranslatableGroup;

TranslatableGroup::configureUsing(function (TranslatableGroup $component) {
    $component
        ->localesLabels([
            'ar' => __('locales.ar'),
            'en' => __('locales.en'),
        ])
        ->locales(['ar', 'en']);
});
```

Usage
-----

[](#usage)

```
use Amzad\FilamentTranslatableGroup\TranslatableGroup;

// Single Field — via macro
TextInput::make('title')
    ->translatableGroup();

// Multiple Fields — via component
TranslatableGroup::make()
    ->schema([
        Forms\Components\TextInput::make('title'),
        Forms\Components\Textarea::make('content'),
    ]);
```

Each field is cloned for every locale and labelled `"{Original Label} ({Locale Label})"`. Fields are arranged in a 2-column grid by default (configurable via `->columns()`).

Customizations
--------------

[](#customizations)

### Modify fields per locale

[](#modify-fields-per-locale)

```
use Amzad\FilamentTranslatableGroup\TranslatableGroup;
use Filament\Forms\Components\Field;

$customizeField = function (Field $component, string $locale) {
    // ...
};

// Globally in boot method
TranslatableGroup::configureUsing(function (TranslatableGroup $component) use ($customizeField) {
    $component->modifyFieldsUsing($customizeField);
});

// Single Field
TextInput::make('title')
    ->translatableGroup(modifyFieldsUsing: $customizeField);

// Multiple Fields
TranslatableGroup::make()
    ->modifyFieldsUsing($customizeField)
    ->schema([
        Forms\Components\TextInput::make('title'),
        Forms\Components\Textarea::make('content'),
    ]);
```

### Override the default locales

[](#override-the-default-locales)

```
$localesFn = function () {
    return ['ar', 'en'];

    // Also with labels:
    return [
        'ar' => 'Arabic',
        'en' => 'English',
    ];
};

// Single Field
TextInput::make('title')
    ->translatableGroup(locales: $localesFn);

// Multiple Fields
TranslatableGroup::make()
    ->locales($localesFn)
    ->schema([
        Forms\Components\TextInput::make('title'),
        Forms\Components\Textarea::make('content'),
    ]);
```

### Override the column count

[](#override-the-column-count)

```
TranslatableGroup::make()
    ->columns(3)
    ->schema([...]);
```

Pre-made configurations
-----------------------

[](#pre-made-configurations)

### Direction by locale

[](#direction-by-locale)

Automatically sets `direction: rtl` for Arabic locales, `ltr` for all others:

```
TranslatableGroup::configureUsing(function (TranslatableGroup $component) {
    $component->addDirectionByLocale();
});
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance85

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

77d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f72efe34b0691db73c33954b7f4884ae06bc920513f18f6861d91c75b7166eaa?d=identicon)[amzad78692](/maintainers/amzad78692)

---

Top Contributors

[![amzad78692](https://avatars.githubusercontent.com/u/71245144?v=4)](https://github.com/amzad78692 "amzad78692 (1 commits)")

---

Tags

laraveltranslationfilamentamzadfilament-translatable-group

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/amzad-filament-translatable-group/health.svg)

```
[![Health](https://phpackages.com/badges/amzad-filament-translatable-group/health.svg)](https://phpackages.com/packages/amzad-filament-translatable-group)
```

###  Alternatives

[codewithdennis/filament-select-tree

The multi-level select field enables you to make single selections from a predefined list of options that are organized into multiple levels or depths.

330530.5k30](/packages/codewithdennis-filament-select-tree)[danihidayatx/image-optimizer

Optimize your Filament images before they reach your database. Forked from joshembling/image-optimizer for Filament v4 &amp; v5 support.

3418.1k](/packages/danihidayatx-image-optimizer)[awcodes/richer-editor

A collection of extensions and tools to enhance the Filament Rich Editor field.

3913.8k9](/packages/awcodes-richer-editor)[abdulmajeed-jamaan/filament-translatable-tabs

Simplifying managing json based translation columns using tabs

3889.5k1](/packages/abdulmajeed-jamaan-filament-translatable-tabs)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[elegantly/laravel-translator

All on one translations management for Laravel

6333.1k](/packages/elegantly-laravel-translator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
