PHPackages                             misaf/vendra-language - 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. misaf/vendra-language

ActiveVendra-module[Localization &amp; i18n](/categories/localization)

misaf/vendra-language
=====================

Multi-language support system with tenant-aware languages and translation lines

v1.0.0(2w ago)161MITPHPPHP ^8.3CI failing

Since Jul 10Pushed 4d agoCompare

[ Source](https://github.com/misaf/vendra-language)[ Packagist](https://packagist.org/packages/misaf/vendra-language)[ Docs](https://github.com/misaf/vendra-language)[ RSS](/packages/misaf-vendra-language/feed)WikiDiscussions 1.x Synced 1w ago

READMEChangelog (10)Dependencies (27)Versions (12)Used By (1)

Vendra Language
===============

[](#vendra-language)

Tenant-aware language catalogs and database-backed translation lines for Vendra applications.

Features
--------

[](#features)

- A platform locale catalog backed by Symfony Intl and ICU
- Per-tenant enabled languages with exactly one default and sortable display order
- Locale-specific database overrides powered by `spatie/laravel-translation-loader`
- A global Filament language switcher
- An optional bridge to `misaf/vendra-localization`

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 13
- Filament 5
- `misaf/vendra-support`
- `symfony/intl`

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

[](#installation)

```
composer require misaf/vendra-language
php artisan vendor:publish --tag=vendra-language-migrations
php artisan migrate
```

The service provider and Filament plugin are discovered automatically.

Locale catalog
--------------

[](#locale-catalog)

Every locale exposed by Symfony Intl may be installed for a tenant from the searchable Languages resource. The preferred locale subset for host integrations may still be configured in `config/vendra-language.php`:

```
'locales' => ['en', 'de', 'fa', 'pt-BR'],
```

Values use canonical web/BCP-47 tags and must exist in the ICU locale catalog. This preferred subset does not limit which locales may be installed. Tenant language records store the locale, enabled status, default flag, and display position; localized names are derived from ICU.

Usage
-----

[](#usage)

Enable a language for the current tenant:

```
use Misaf\VendraLanguage\Models\Language;

$language = Language::query()->create([
    'locale' => 'en',
    'status' => true,
    'is_default' => true,
    'position' => 1,
]);
```

The first enabled language becomes the default automatically. Setting another language as default clears the previous default for the current tenant, and deleting the default promotes the first remaining language in display order.

Create a translation line and read it through Laravel's translator:

```
use Misaf\VendraLanguage\Models\LanguageLine;

LanguageLine::query()->create([
    'group' => 'navigation',
    'key' => 'dashboard',
    'text' => [
        'en' => 'Dashboard',
        'de' => 'Übersicht',
        'fa' => 'داشبورد',
    ],
]);

__('navigation.dashboard');
```

To override a package translation, store the package translation namespace separately from the translation file group:

```
LanguageLine::query()->create([
    'namespace' => 'vendra-product',
    'group' => 'attributes',
    'key' => 'name',
    'text' => ['en' => 'Product name'],
]);

__('vendra-product::attributes.name');
```

Leave `namespace` empty for application translations. In Laravel's `namespace::group.key` syntax, the package name is the namespace and the translation file name is the group.

Database values override only the locale for which a non-blank value is stored. Missing and blank values leave that locale's file translation intact, allowing Laravel's normal fallback behavior to run afterward.

Applications that replace `translation-loader.model` may implement `Misaf\VendraLanguage\Contracts\NamespacedLanguageLine` to receive package namespaces. Models without the contract continue to support application translations, while explicit custom loaders and translation managers remain authoritative.

Load the current tenant's enabled languages in display order:

```
$languages = Language::query()->ordered()->get();
```

Optional localization bridge
----------------------------

[](#optional-localization-bridge)

When `misaf/vendra-localization` is installed, this package supplies its supported locale catalog and appends the tenant-default resolver at the end of the resolver chain. Explicit user, route, query, and header preferences therefore retain priority.

Filament
--------

[](#filament)

The configured panels expose Languages and Language Lines within the Localization cluster. Language lines can override keys discovered in application and Vendra package translation files. Their form displays all enabled tenant locales together and retains stored values for locales that are later disabled. Installed languages can be temporarily disabled from the Languages table without deleting them. The Languages table reports override coverage per locale, while the Language Lines table reports enabled-locale completion and identifies missing locales.

The global language switcher uses the current tenant's enabled languages in display order and falls back to `config('app.fallback_locale')` when none are enabled.

Testing
-------

[](#testing)

```
composer test
```

License
-------

[](#license)

MIT. See [LICENSE](LICENSE).

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance98

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 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

Every ~1 days

Total

11

Last Release

11d ago

Major Versions

0.2.0 → v1.0.02026-07-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/41fd7351d25e29dafa18068d0418eecf6bb47a7473aabe6bc674b4ca35e71805?d=identicon)[misaf](/maintainers/misaf)

---

Top Contributors

[![misaf](https://avatars.githubusercontent.com/u/8195685?v=4)](https://github.com/misaf "misaf (62 commits)")

---

Tags

laravelmultilanguagefilamentphpmisafvendra

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/misaf-vendra-language/health.svg)

```
[![Health](https://phpackages.com/badges/misaf-vendra-language/health.svg)](https://phpackages.com/packages/misaf-vendra-language)
```

###  Alternatives

[bezhansalleh/filament-language-switch

Zero config Language Switch(Changer/Localizer) plugin for filamentphp admin

3581.3M33](/packages/bezhansalleh-filament-language-switch)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16321.5k](/packages/backstage-mails)[tapp/filament-lms

193.5k](/packages/tapp-filament-lms)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[masterix21/laravel-licensing

Laravel licensing package with polymorphic assignment to any model, activation keys, expirations/renewals, and seat control via LicenseUsage. Supports offline verification with public-key–signed tokens, a CLI to generate/rotate/revoke keys, and an extensible architecture via config and contracts.

1613.3k4](/packages/masterix21-laravel-licensing)[a2insights/filament-saas

Filament Saas for A2Insights

191.7k](/packages/a2insights-filament-saas)

PHPackages © 2026

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