PHPackages                             experius/module-missingtranslations - 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. experius/module-missingtranslations

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

experius/module-missingtranslations
===================================

Collect missing translations in specified folder or the entire Magento 2 Root. Adds database editing and management of translations.

4.0.6(7mo ago)53298.3k↓51.7%13[8 issues](https://github.com/experius/Magento-2-Module-Experius-MissingTranslations/issues)[3 PRs](https://github.com/experius/Magento-2-Module-Experius-MissingTranslations/pulls)proprietaryPHPPHP ^7.4 || ^8.0 || ^8.1

Since Feb 16Pushed 7mo ago5 watchersCompare

[ Source](https://github.com/experius/Magento-2-Module-Experius-MissingTranslations)[ Packagist](https://packagist.org/packages/experius/module-missingtranslations)[ RSS](/packages/experius-module-missingtranslations/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (1)Versions (57)Used By (0)

Mage2 Module Experius MissingTranslations
=========================================

[](#mage2-module-experius-missingtranslations)

Add a CLI command to Collect missing translations in specified folder or the entire Magento 2 Root and add an Admin Grid to display and update or add database/inline translations `(Stores > Translations > Database/Inline Translations)`

`experius/module-missingtranslations`

- [Main Functionalities](#markdown-header-main-functionalities)
- [Configuration](#markdown-header-configuration)
- [Additional Information](#markdown-header-additional-information)
- [Todo](#markdown-header-todo)

---

Main Functionalities
====================

[](#main-functionalities)

- Recommended Minimum Usage
- Missing Translations
- Translations to database (Existing and Missing)

Recommended Minimum Usage
-------------------------

[](#recommended-minimum-usage)

- Use the command to generate the CSV File with Missing Translations for your Locales
    - **CSV File for Missing Translations**
- Use the command to manually collect and import Existing &amp; Missing Translations for your Locales
    - **Manually - Collect and Import**
- *Optional* Enable the Cronjobs in the configuration so the Database Translations will be up to date with New Modules
    - **Cronjob - Collect and Import** and **Configuration**

Missing Translations
--------------------

[](#missing-translations)

### CSV File for Missing Translations

[](#csv-file-for-missing-translations)

It is possible to generate a CSV file which contains the original string and an empty string.

#### Command

[](#command)

This CSV file can be generated through the following command:

```
php bin/magento experius_missingtranslations:collect [-m|--magento] [-l|--locale="..."] [-s|--store="..."] [directory]

```

Use the command like this:

```
php bin/magento experius_missingtranslations:collect --magento --locale nl_NL

```

#### Usage 1 - Transform Fully Translated File to Language Pack

[](#usage-1---transform-fully-translated-file-to-language-pack)

This file can be used by a **Translation Agency** to complete the translations for the webshop.

After the **Translation Agency** has fully translated the csv file it is possible to transform it to a language pack.

This can be done by removing the suffix `missing` and eventually transform it to a language pack by adding a `language.xml` and a `registration.php`

#### Usage 2 - Translate Missing Strings Through the Admin with the CSV File

[](#usage-2---translate-missing-strings-through-the-admin-with-the-csv-file)

Besides transforming the file to a language pack it is possible to add new translations through the admin interface, which can be found under `Stores > Translations > Database / Inline`

**only if you generated it to a file with the following filename a file in app/i18n/Vendor/missing/locale\_code.csv. (Example: app/i18n/Vendor/missing/nl\_NL.csv.)**

#### Usage 3 - Import the Missing Translations into the Database\*

[](#usage-3---import-the-missing-translations-into-the-database)

For this functionality see **Translations to database (Existing and Missing)**

Translations to database (Existing and Missing)
-----------------------------------------------

[](#translations-to-database-existing-and-missing)

In addition to gathering missing translations this module also supports database translation (formerly known as inline translate)

This makes it possible for merchants to edit any translation in the Magento Admin Panel.

### Cronjob - Collect and Import

[](#cronjob---collect-and-import)

Collecting and importing the translations happens nightly when it is enabled **by default this functionality is disabled**This is done on global scope for all locales that are used in at least one storeview (based on the configured locales).

#### Existing CSV Translations

[](#existing-csv-translations)

*03:13 AM server time, all existing csv translations are added to the database.*

This functionality Imports the Existing CSV Translations into the Database then the Original String will differ from the Translated String.

#### Missing Translations

[](#missing-translations-1)

*03:23 AM server time, all missing translations found are added to the database.*

This functionality Imports the Missing Translations into the Database then the Original String will be equal to the Translated String.

### Manually - Collect and Import

[](#manually---collect-and-import)

Manually gathering the translations (and adding them to the database) is possible. This can be done by one of the following two Console commands:

```
php bin/magento experius_missingtranslations:existing-translations-to-database --global --locale nl_NL

```

```
php bin/magento experius_missingtranslations:missing-translations-to-database --global --locale nl_NL

```

Herein --global is defined to save the translations for any storeview with the specified locale

To specify a specific store\_id add the store ID parameter (--store \[store\_id\]) WARNING: This is not recommended unless translations differ for the same language in separate storeviews Example:

```
php bin/magento experius_missingtranslations:addtodatabase --store 1 --locale nl_NL

```

Configuration
=============

[](#configuration)

- Define Vendor which is used for generating the Missing Translations CSV Files
    - `(Stores > Settings > Configuration > General > General > Locale Options > Language vendor for missing translations)`
- Enable the Collect and Import for Existing Translations
    - `(Stores > Settings > Configuration > General > General > Locale Options > Existing translations cron enabled)`
- Enable the Collect and Import for Missing Translations
    - `(Stores > Settings > Configuration > General > General > Locale Options > Missing translations cron enabled)`

TODO
====

[](#todo)

For database translations

- Add flag to translation table database (user\_defined); if user edit's a translation, user\_defined is flagged as true.
- Add --force update for every entry that is not flagged as user\_defined; to update csv changes into database.

###  Health Score

59

—

FairBetter than 98% of packages

Maintenance62

Regular maintenance activity

Popularity48

Moderate usage in the ecosystem

Community23

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 59.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 ~65 days

Recently: every ~250 days

Total

50

Last Release

212d ago

Major Versions

1.6.0 → 2.0.02018-02-21

2.1.13 → 3.0.02020-10-21

3.2.3 → 4.0.02022-09-19

PHP version history (2 changes)4.0.0PHP ^7.4

4.0.1PHP ^7.4 || ^8.0 || ^8.1

### Community

Maintainers

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

---

Top Contributors

[![lewisvoncken](https://avatars.githubusercontent.com/u/6040343?v=4)](https://github.com/lewisvoncken "lewisvoncken (55 commits)")[![rubenexp](https://avatars.githubusercontent.com/u/34739270?v=4)](https://github.com/rubenexp "rubenexp (5 commits)")[![DRdevil27](https://avatars.githubusercontent.com/u/32247311?v=4)](https://github.com/DRdevil27 "DRdevil27 (5 commits)")[![florisschreuder](https://avatars.githubusercontent.com/u/57114356?v=4)](https://github.com/florisschreuder "florisschreuder (5 commits)")[![MatthijsBreed](https://avatars.githubusercontent.com/u/46493844?v=4)](https://github.com/MatthijsBreed "MatthijsBreed (4 commits)")[![thokiller](https://avatars.githubusercontent.com/u/35527212?v=4)](https://github.com/thokiller "thokiller (4 commits)")[![Hexmage](https://avatars.githubusercontent.com/u/22170051?v=4)](https://github.com/Hexmage "Hexmage (4 commits)")[![borisvankatwijk](https://avatars.githubusercontent.com/u/6112053?v=4)](https://github.com/borisvankatwijk "borisvankatwijk (3 commits)")[![Basvanderlouw](https://avatars.githubusercontent.com/u/47354104?v=4)](https://github.com/Basvanderlouw "Basvanderlouw (2 commits)")[![jitskearendshappyhorizon](https://avatars.githubusercontent.com/u/151655287?v=4)](https://github.com/jitskearendshappyhorizon "jitskearendshappyhorizon (1 commits)")[![mhaagen85](https://avatars.githubusercontent.com/u/87481273?v=4)](https://github.com/mhaagen85 "mhaagen85 (1 commits)")[![pierre-denissen](https://avatars.githubusercontent.com/u/49679178?v=4)](https://github.com/pierre-denissen "pierre-denissen (1 commits)")[![dylanmaurits](https://avatars.githubusercontent.com/u/76950827?v=4)](https://github.com/dylanmaurits "dylanmaurits (1 commits)")[![DjQuinnEXP](https://avatars.githubusercontent.com/u/73698306?v=4)](https://github.com/DjQuinnEXP "DjQuinnEXP (1 commits)")

### Embed Badge

![Health badge](/badges/experius-module-missingtranslations/health.svg)

```
[![Health](https://phpackages.com/badges/experius-module-missingtranslations/health.svg)](https://phpackages.com/packages/experius-module-missingtranslations)
```

###  Alternatives

[smmoosavi/php-gettext

Wrapper for php-gettext by danilo segan. This library provides PHP functions to read MO files even when gettext is not compiled in or when appropriate locale is not present on the system.

1927.0k1](/packages/smmoosavi-php-gettext)

PHPackages © 2026

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