PHPackages                             iabduul7/filament-auto-transliterate - 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. iabduul7/filament-auto-transliterate

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

iabduul7/filament-auto-transliterate
====================================

Inline, as-you-type transliteration and translation for Filament form inputs. Type Roman Urdu, get Urdu script on space, without leaving the field.

v0.1.0(1mo ago)054↓88.9%MITPHPPHP ^8.2CI passing

Since Jun 2Pushed 2w agoCompare

[ Source](https://github.com/iabduul7/filament-auto-transliterate)[ Packagist](https://packagist.org/packages/iabduul7/filament-auto-transliterate)[ Docs](https://github.com/iabduul7/filament-auto-transliterate)[ RSS](/packages/iabduul7-filament-auto-transliterate/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (9)Versions (4)Used By (0)

Filament Auto Translate
=======================

[](#filament-auto-translate)

Inline, as-you-type transliteration and translation for [Filament](https://filamentphp.com) form inputs.

Type Roman Urdu, press space, and the word is rewritten in Urdu script — without leaving the field, opening a modal, or switching keyboards. Built for data-entry teams who think in Urdu but type on a Latin keyboard.

```
receiver  ->  ریسیور        (transliterate: same sounds, Urdu script)
receiver  ->  وصول کنندہ    (translate: by meaning — opt-in)

```

Why this exists
---------------

[](#why-this-exists)

The existing Filament translation plugins are **action-based** (click a button, fill a per-locale modal) or automate **static labels**. None of them convert **what the user is typing, as they type it**. This package fills that gap: it is a keyboard-style input helper, not a content-translation workflow.

How it differs from "translation" plugins
-----------------------------------------

[](#how-it-differs-from-translation-plugins)

It ships **two distinct modes** and keeps them strictly separate:

ModeWhat it doesOn a miss`transliterate` (default)Writes the same sounds in the target script (Roman Urdu to Urdu)Leaves your text unchanged`translate` (opt-in)Converts by meaning (English to Urdu)Leaves your text unchangedTransliterate mode **never silently falls through** to meaning-based translation. That separation is the whole point: a phonetic helper that quietly "translates" a word it didn't recognise is worse than one that leaves it alone.

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

[](#installation)

```
composer require iabduul7/filament-auto-transliterate

# Publishes the config + migration and offers to run migrations.
php artisan filament-auto-transliterate:install

php artisan filament:assets
```

The migration ships as a publishable stub, so use the install command above (`php artisan migrate` alone won't create the cache table until the migration is published). To publish manually instead:

```
php artisan vendor:publish --tag="filament-auto-transliterate-migrations"
php artisan migrate
```

Add the plugin to a panel:

```
use Iabduul7\FilamentAutoTransliterate\FilamentAutoTransliteratePlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(FilamentAutoTransliteratePlugin::make());
}
```

That registers the header on/off toggle (next to global search) and injects the assets. Nothing else to wire up.

Usage
-----

[](#usage)

Mark any text field, textarea, etc. as translatable:

```
use Filament\Forms\Components\TextInput;

TextInput::make('receiver_name')
    ->translatable();                 // uses the default mode

TextInput::make('description')
    ->translatable(mode: 'translate'); // convert by meaning instead
```

Turn the feature on with the header toggle. Focus a marked field, type a Roman word, press space — done. State persists per browser.

Configuration
-------------

[](#configuration)

Publish the config to customise providers, modes, language, route, and limits:

```
php artisan vendor:publish --tag="filament-auto-transliterate-config"
```

Key options:

- **`mode`** — global default (`transliterate` or `translate`).
- **`target_language`** — defaults to `ur`. The architecture is language-agnostic; v1 ships Urdu defaults.
- **`providers.transliterate` / `providers.translate`** — the ordered fallback chain for each mode. The lists are separate by design.
- **`provider_map`** — register your own provider (implement `Contracts\TranslationProvider`) and add its key to a chain.
- **`route.middleware`** — the endpoint is `['web', 'auth']` and throttled by default. It proxies to external translation APIs, so keep it authenticated.

### Providers

[](#providers)

Out of the box: Google Input Tools (transliteration), and MyMemory, LibreTranslate, Microsoft, Google plus a local JSON dictionary (translation). Unconfigured providers (missing API keys) are skipped automatically. Every successful conversion is cached permanently in the database, so repeats are instant and free.

### Local dictionary

[](#local-dictionary)

Point `dictionary_path` at a JSON file of `{ "source word": "target word" }`. Use a `{target}` placeholder to ship one file per language:

```
'dictionary_path' => resource_path('dictionaries/en-{target}.json'),
```

The dictionary is checked before any network provider and only returns a hit when every word of a short phrase is known, so it never partially mangles input.

Building assets (contributors)
------------------------------

[](#building-assets-contributors)

The compiled JS/CSS ship in `resources/dist`. To rebuild:

```
npm install
npm run build
```

Testing
-------

[](#testing)

```
composer test
```

Roadmap
-------

[](#roadmap)

- Learn-from-correction: when a user fixes an applied word, remember it next time.
- Client-side fast path for the most common words (no network round-trip).
- A cache-management Filament resource.
- First-class support for additional target languages and scripts.

License
-------

[](#license)

MIT. See [LICENSE.md](LICENSE.md).

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance94

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

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

53d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/dc056cb14243e9c095935dd51acd334fb0a7bdbec31472295930ea0489dc7527?d=identicon)[iabduul.7](/maintainers/iabduul.7)

---

Top Contributors

[![iabduul7](https://avatars.githubusercontent.com/u/24309704?v=4)](https://github.com/iabduul7 "iabduul7 (17 commits)")

---

Tags

filamentfilament-pluginfilamentphplaravelphprtltranslationtransliterationurdularaveltranslationinputinlinefilamenttransliterationurdu

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/iabduul7-filament-auto-transliterate/health.svg)

```
[![Health](https://phpackages.com/badges/iabduul7-filament-auto-transliterate/health.svg)](https://phpackages.com/packages/iabduul7-filament-auto-transliterate)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17760.2k3](/packages/stephenjude-filament-jetstream)[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

274333.4k9](/packages/croustibat-filament-jobs-monitor)[stephenjude/filament-debugger

About

104162.2k2](/packages/stephenjude-filament-debugger)[finity-labs/fin-mail

A powerful email template manager and composer for Filament with dynamic token replacement, template versioning, and inline email sending.

284.8k2](/packages/finity-labs-fin-mail)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16121.5k](/packages/backstage-mails)

PHPackages © 2026

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