PHPackages                             mindtwo/laravel-missing-translations - 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. mindtwo/laravel-missing-translations

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

mindtwo/laravel-missing-translations
====================================

Browser-based viewer and database collector for missing Laravel translation keys.

1.2.0(1mo ago)05MITPHPPHP ^8.2||^8.3||^8.4CI failing

Since Jan 5Pushed 11mo ago5 watchersCompare

[ Source](https://github.com/mindtwo/laravel-missing-translations)[ Packagist](https://packagist.org/packages/mindtwo/laravel-missing-translations)[ Docs](https://github.com/mindtwo/missing-translations)[ RSS](/packages/mindtwo-laravel-missing-translations/feed)WikiDiscussions master Synced yesterday

READMEChangelog (5)Dependencies (22)Versions (7)Used By (0)

Laravel Missing Translations
============================

[](#laravel-missing-translations)

[![Latest Version on Packagist](https://camo.githubusercontent.com/382cb658a9afc8d8c6ea341c5e75bd6d361075bb899e130752a0834d6b6a27ef/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d696e6474776f2f6c61726176656c2d6d697373696e672d7472616e736c6174696f6e732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mindtwo/laravel-missing-translations)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Tests](https://camo.githubusercontent.com/742431042f43ee63ee7fb67dea3dba7a9787d39a91b797406e10b330866f64ae/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6d696e6474776f2f6d697373696e672d7472616e736c6174696f6e732f72756e2d74657374732e796d6c3f6272616e63683d6d6173746572266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/mindtwo/missing-translations/actions/workflows/run-tests.yml)[![PHPStan](https://camo.githubusercontent.com/1c3f843501ac9f5b7ab7cbc04e948ba6ea8587e75a0e48973648d1031d011c2c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6d696e6474776f2f6d697373696e672d7472616e736c6174696f6e732f7068707374616e2e796d6c3f6272616e63683d6d6173746572266c6162656c3d7068707374616e267374796c653d666c61742d737175617265)](https://github.com/mindtwo/missing-translations/actions/workflows/phpstan.yml)[![Total Downloads](https://camo.githubusercontent.com/f759b414c58302678413a91161a549cda337437695a077e43eba22ad5a23bd5e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d696e6474776f2f6c61726176656c2d6d697373696e672d7472616e736c6174696f6e732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mindtwo/laravel-missing-translations)

`mindtwo/laravel-missing-translations` lists every translation key your application has used together with the value for every configured locale. Missing keys are highlighted, optionally persisted to the database via `Lang::handleMissingKeysUsing()`, and discoverable through a single inspection route.

The package ships two interchangeable repositories:

- A **file repository** that diffs every translation file in the configured main locale against the comparison locales.
- A **database repository** backed by a `missing_translations` table, populated automatically as the application runs.

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

[](#requirements)

- PHP 8.2, 8.3, or 8.4
- Laravel 10, 11, 12, or 13

> Laravel 10 is included in the composer constraints for legacy applications, but is not exercised in CI: `pestphp/pest-plugin-laravel` v3+ dropped Laravel 10. New projects should use Laravel 11 or later.

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

[](#installation)

```
composer require mindtwo/laravel-missing-translations
```

Publish the configuration file (and views, if you intend to customise them):

```
php artisan vendor:publish --tag=missing-translations-config
php artisan vendor:publish --tag=missing-translations-views
```

Run the package migration to enable the database repository:

```
php artisan migrate
```

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

[](#configuration)

`config/missing-translations.php` exposes the following options:

KeyDescription`allowed_environments`Environments where the inspection route is registered.`main_locale`Locale used as the source of truth when collecting diffs.`locales`Comparison locales.`log_missing_keys`Persist keys reported by `Lang::handleMissingKeysUsing()`.`authorization.gate``false` to disable, `true` for the default `viewMissingTranslations` gate, or a custom gate name.`authorization.middleware`Middleware applied to the inspection route.`route.prefix`URL prefix for the inspection route. Defaults to `missing-translations`.`repositories.default`Default repository (`file` or `database`).`repositories.sources`Map of repository name → implementation class.Usage
-----

[](#usage)

Visit `/` (defaults to `/missing-translations`) in an allowed environment to render the translation table. Query parameters:

- `?only_missing=1` — show only keys that are missing in at least one locale.
- `?exclude[]=de&exclude[]=fr` — hide one or more locales.
- `?repo=database` — switch to the database repository for the current request.

### Collecting missing keys manually

[](#collecting-missing-keys-manually)

```
php artisan m2:collect-missing-translations --locales=de --locales=fr
php artisan m2:collect-missing-translations --dry-run
```

### Resolving a repository in code

[](#resolving-a-repository-in-code)

```
use mindtwo\LaravelMissingTranslations\Services\MissingTranslations;

$missing = app(MissingTranslations::class)
    ->repository('file')
    ->getMissingTranslationsForLocale('de');
```

Testing
-------

[](#testing)

```
composer test
composer analyse
composer lint
composer format
```

Changelog
---------

[](#changelog)

See [CHANGELOG](CHANGELOG.md) for a list of recent changes.

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

[](#contributing)

See [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover a security issue, please email `info@mindtwo.de` instead of opening a public issue.

Credits
-------

[](#credits)

- [mindtwo GmbH](https://github.com/mindtwo)
- [All Contributors](../../contributors)

License
-------

[](#license)

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

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance69

Regular maintenance activity

Popularity4

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 53.8% 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 ~173 days

Total

6

Last Release

44d ago

PHP version history (2 changes)1.0PHP ^8.2|^8.3

1.1.3PHP ^8.2||^8.3||^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/4cc86fe6179314d204b14d1c81eb09a87ef84b0bcf2360dcd981171d1346c077?d=identicon)[mindtwo](/maintainers/mindtwo)

---

Top Contributors

[![jonasemde](https://avatars.githubusercontent.com/u/5083193?v=4)](https://github.com/jonasemde "jonasemde (7 commits)")[![blumewas](https://avatars.githubusercontent.com/u/5960093?v=4)](https://github.com/blumewas "blumewas (6 commits)")

---

Tags

laravellocalizationi18ntranslationsmissing translations

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/mindtwo-laravel-missing-translations/health.svg)

```
[![Health](https://phpackages.com/badges/mindtwo-laravel-missing-translations/health.svg)](https://phpackages.com/packages/mindtwo-laravel-missing-translations)
```

###  Alternatives

[outhebox/laravel-translations

Manage your Laravel translations with a beautiful UI. Add, edit, delete, import, and export translations with ease.

813100.4k](/packages/outhebox-laravel-translations)[vemcogroup/laravel-translation

Translation package for Laravel to scan for localisations and up/download to poeditor

136327.1k3](/packages/vemcogroup-laravel-translation)[typicms/base

A modular multilingual CMS built with Laravel, enabling developers to manage structured content like pages, news, events, and more.

1.6k20.4k](/packages/typicms-base)[vildanbina/laravel-auto-translation

A Laravel package for automating the translation of language files.

9626.1k4](/packages/vildanbina-laravel-auto-translation)[erag/laravel-lang-sync-inertia

A powerful Laravel package for syncing and managing language translations across backend and Inertia.js (Vue/React/Svelte) frontends, offering effortless localization, auto-sync features, and smooth multi-language support for modern Laravel applications.

4925.3k](/packages/erag-laravel-lang-sync-inertia)[jayesh/laravel-gemini-translator

An interactive command to extract and generate Laravel translations using Gemini AI.

702.3k1](/packages/jayesh-laravel-gemini-translator)

PHPackages © 2026

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