PHPackages                             elgentos/magento2-untranslated-strings - 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. elgentos/magento2-untranslated-strings

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

elgentos/magento2-untranslated-strings
======================================

Detects untranslated strings at runtime, reports them in an admin grid and translates them with Claude (Anthropic API) through the message queue.

1.0.0(1mo ago)451MITPHPPHP ^8.1

Since Jun 11Pushed 1mo agoCompare

[ Source](https://github.com/elgentos/magento2-untranslated-strings)[ Packagist](https://packagist.org/packages/elgentos/magento2-untranslated-strings)[ RSS](/packages/elgentos-magento2-untranslated-strings/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

elgentos/magento2-untranslated-strings
======================================

[](#elgentosmagento2-untranslated-strings)

Magento 2 module that detects **untranslated strings at runtime**, reports them in an admin grid and can **translate them automatically with Claude**(Anthropic API) through Magento's message queue.

A spiritual successor to the Magento 1 extension [EW\_UntranslatedStrings](https://github.com/ericthehacker/magento-untranslatedstrings).

How it works
------------

[](#how-it-works)

1. **Detect** — a plugin on `Magento\Framework\Phrase\Renderer\Translate`checks every rendered phrase against the loaded translation dictionary (i18n CSVs, theme translations and database translations) for the current store locale. Strings without a translation are buffered per request and flushed to the database in a single query at shutdown.
2. **Report** — findings appear under **Reports → Untranslated Strings**: filterable, sortable and exportable, with occurrence counts, store view, locale and the URL where the string was first seen.
3. **Translate** — select rows and use the **Translate with Claude** mass action. The rows are queued (Magento message queue, DB transport — no RabbitMQ required) and a consumer sends them to the Anthropic API in batches. Successful translations are written to Magento's native `translation` database table (store-scoped) and go live after the automatically-invalidated `translate` / `full_page` caches are refreshed. Failed rows get status *Error* with the error message in the grid; re-select them to retry.

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

[](#installation)

```
composer require elgentos/magento2-untranslated-strings
bin/magento module:enable Elgentos_UntranslatedStrings
bin/magento setup:upgrade
```

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

[](#configuration)

**Stores → Configuration → Advanced → Untranslated Strings**

SettingScopeDescriptionLog Untranslated Stringsstore viewEnables runtime detection. Off by default.Anthropic API KeyglobalEncrypted. Create one at [console.anthropic.com](https://console.anthropic.com).Claude ModelglobalDefaults to `claude-opus-4-8`.Detection adds a small overhead per rendered phrase — enable it per store view, ideally on development or staging while you browse/crawl the shop, then review the report.

The queue consumer
------------------

[](#the-queue-consumer)

Translation runs asynchronously through the consumer `elgentosUntranslatedStringsTranslate`. With Magento's default `consumers_runner` cron configuration it starts automatically. To run it manually:

```
bin/magento queue:consumers:start elgentosUntranslatedStringsTranslate
```

Notes
-----

[](#notes)

- Translations are stored in the core `translation` table, so they survive deployments and can be reviewed/edited with any DB-translation tooling.
- The Claude prompt instructs the model to preserve placeholders (`%1`…`%9`, `%s`, `%d`, named placeholders), HTML and punctuation, and to keep brand/product names untranslated. Structured output (JSON schema) guarantees a parseable response.
- Detection never breaks rendering: all failure paths are caught and logged.

License
-------

[](#license)

MIT

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance90

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

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

Unknown

Total

1

Last Release

46d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/88a6d8dc588e8f2a0948335563a754687f71304f0bd3b7f7049d4bcdc00a563c?d=identicon)[peterjaap](/maintainers/peterjaap)

---

Top Contributors

[![peterjaap](https://avatars.githubusercontent.com/u/431360?v=4)](https://github.com/peterjaap "peterjaap (3 commits)")

### Embed Badge

![Health badge](/badges/elgentos-magento2-untranslated-strings/health.svg)

```
[![Health](https://phpackages.com/badges/elgentos-magento2-untranslated-strings/health.svg)](https://phpackages.com/packages/elgentos-magento2-untranslated-strings)
```

###  Alternatives

[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1011.8k26](/packages/loki-magento2-components)[buckaroo/magento2

Buckaroo Magento 2 extension

32420.3k8](/packages/buckaroo-magento2)[fastly/magento2

Fastly CDN Module for Magento 2.4.x

1564.4M1](/packages/fastly-magento2)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

1310.9k2](/packages/opengento-module-category-import-export)[zwernemann/module-withdrawal

Magento 2 EU Withdrawal Button Module - Adds a withdrawal/revocation button for orders in compliance with EU Directive (EU) 2023/2673

256.0k2](/packages/zwernemann-module-withdrawal)

PHPackages © 2026

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