PHPackages                             werkraum/deepl-translate-slim - 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. werkraum/deepl-translate-slim

ActiveTypo3-cms-extension[Localization &amp; i18n](/categories/localization)

werkraum/deepl-translate-slim
=============================

Translate all your pages on demand, without additional configuration. You do not need to set up more than one language in TYPO3. Enable Translation targets in your site configuration and display a language menu with our Menu Integration and you are ready to go.

1.2.5(3mo ago)3314↓57.7%GPL-2.0-or-laterPHPPHP ^8.1

Since Jun 26Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/werkraum/deepl-translate-slim)[ Packagist](https://packagist.org/packages/werkraum/deepl-translate-slim)[ Docs](https://werkraum.net/typo3-deepl-integration)[ RSS](/packages/werkraum-deepl-translate-slim/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (6)Dependencies (6)Versions (19)Used By (0)

What does it do?
================

[](#what-does-it-do)

Translate all your pages on demand, without additional configuration. You do not need to set up more than one language in TYPO3. Enable Translation targets in your site configuration and display a language menu with our [Menu Integration](#menu-integration) and you are ready to go.

- Pages are only translated on demand
    - a middleware processes the response from TYPO3 and has it translated by DeepL
    - the translation process can be customized to your needs [Custom Translation Processing](#custom-translation-processing)
- all translation targets are validated
    - e.g. if you disabled `DK` it is not possible to bypass this value
- search bots are excluded by default (otherwise they could use up you api translation volume)
- all fetched translations are stored in a separate [cache](#caching) (to further protect you api volume)

Further Infos
-------------

[](#further-infos)

[Demo Link (german)](https://deepl.werkraum.net/)

[first News (german)](https://werkraum.net/news/deepl-uebersetzungen-in-typo3)

[https://werkraum.net/typo3-deepl-integration (german)](https://werkraum.net/typo3-deepl-integration)

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

[](#installation)

`composer require werkraum/deepl-translate-slim`

Extension Setup
---------------

[](#extension-setup)

You have to provide an `authenticationKey`. Make sure to set the API Type to *pro* if you have a pro account.

[![deepl_extension_settings.png](Resources/Public/Images/deepl_extension_settings.png)](Resources/Public/Images/deepl_extension_settings.png)

### Global Configuration Values

[](#global-configuration-values)

KeyDescriptionauthenticationKeyThe authentication Key for the DeepL Api [Deepl API Key](https://support.deepl.com/hc/en-us/articles/360020695820-API-Key-for-DeepL-s-API)hostThe API Type. Free and Pro have different Endpoints. [Free and Pro](https://support.deepl.com/hc/en-us/articles/360021183620-DeepL-API-Free-vs-DeepL-API-Pro)formalitySee [Deepl API Reference](https://developers.deepl.com/docs/api-reference/translate/openapi-spec-for-text-translation)ignoreTagsSee [Deepl API Reference](https://developers.deepl.com/docs/api-reference/translate/openapi-spec-for-text-translation)splitSentencesSee [Deepl API Reference](https://developers.deepl.com/docs/api-reference/translate/openapi-spec-for-text-translation)preserveFormattingSee [Deepl API Reference](https://developers.deepl.com/docs/api-reference/translate/openapi-spec-for-text-translation)nonSplittingTagsSee [Deepl API Reference](https://developers.deepl.com/docs/api-reference/translate/openapi-spec-for-text-translation)outlineDetectionSee [Deepl API Reference](https://developers.deepl.com/docs/api-reference/translate/openapi-spec-for-text-translation)splittingTagsSee [Deepl API Reference](https://developers.deepl.com/docs/api-reference/translate/openapi-spec-for-text-translation)clearCacheSee [Caching](#Caching)Site Configuration Values
-------------------------

[](#site-configuration-values)

NameKeyDescription(default/fallback) Source Languagedefault\_deepl\_source\_languageThe source language DeepL will use to translate from. Can be disabled for each language. See languages.(default/fallback) Allowed targetsdefault\_deepl\_allowed\_languagesAdd all allowed languages as alternate links. (clear the page cache to make this change take effect!)Hreflangdeepl\_hreflangOnly this languages will be offered for translation. Can be changed for each language. See languages.Exclude Elementsdeepl\_exclude\_elements\_by\_selectorExclude HTML elements from translation by CSS3 Selector (comma-separated!)Split contentdeepl\_split\_content\_by\_selectorsDeepL has a content-length limit per translation request so we need to split our html into parts. Specify parts of your HTML by a comma-separated list of CSS3 selectors which can be translated separately. e.g. "#page-header,#page-content,#page-footer"Replace linksdeepl\_replace\_linksAdd the language param "deepl" to all links?Skip linksdeepl\_replace\_links\_attributeYes/NoTranslated by machine placeholderdeepl\_translated\_by\_machineYou have the following placeholder: {source}, {target}, {originalLink}Target for the Translated by machine placeholderdeepl\_translated\_by\_machine\_targetPlease specify an html element with an IDTranslate the Translated by machine placeholderdeepl\_translate\_translated\_by\_machineYes/NoRecaptcha Protectiondeepl\_recaptchaEnable recaptcha verification to allow access to translated content.Recaptcha Verify Pagedeepl\_recaptcha\_redirect\_to\_pagePAge to redirect the user to verify their access via recaptcha. The configured page has to display the recaptcha verify plugin.Menu Integration
----------------

[](#menu-integration)

The extension has a custom `\Werkraum\DeeplTranslate\DataProcessing\DeepLMenuProcessor` to provide the enabled DeepL translation targets. It provides the same values as the `\TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor`

```
dataProcessing {
  10 = Werkraum\DeeplTranslate\DataProcessing\DeepLMenuProcessor
  10 {
    as = menu
  }
}

```

```

            {item.title}

```

Caching
-------

[](#caching)

The extension has its own cache to ensure that translations are retained in the system even if the content of the pages changes. The service is not free of charge and should be used sparingly. Nevertheless, this cache can be checked and emptied:

[![deepl_menu_clear_cache.png](Resources/Public/Images/deepl_menu_clear_cache.png)](Resources/Public/Images/deepl_menu_clear_cache.png)

You can enable `cacheClear` in the extension configuration to always flush the translations on page or page content change. By default it is disabled.

A dedicated view in the InfoModule provides a detailed overview of all cached pages.

[![deepl_info_module_cache_overview.png](Resources/Public/Images/deepl_info_module_cache_overview.png)](Resources/Public/Images/deepl_info_module_cache_overview.png)

Custom Translation Processing
-----------------------------

[](#custom-translation-processing)

You can customize and extend the translation process by implementing a custom DocumentProcessor with the Interface `\Werkraum\DeeplTranslate\DocumentProcessor\DocumentProcessorInterface`.

Look into [ReplaceLinksProcessor.php](Classes/DocumentProcessor/Processor/ReplaceLinksProcessor.php) to see it in action.

SEO and Bots
------------

[](#seo-and-bots)

To save DeepL resources and avoid spamming the translation service, we use the following rules:

- search bots are excluded by default (otherwise they could use up your api translation volume)
- all fetched translations are stored in a separate cache (to further protect your api volume)

You should exclude all Urls with `deepl` from your robots.txt file. For example:

```
User-agent: *
Disallow: /*?deepl=/
Disallow: /*&deepl=/

```

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance78

Regular maintenance activity

Popularity19

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

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 ~36 days

Recently: every ~97 days

Total

18

Last Release

116d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/25104879?v=4)[Lukas Niestroj](/maintainers/lukasniestroj)[@lukasniestroj](https://github.com/lukasniestroj)

---

Top Contributors

[![lukasniestroj](https://avatars.githubusercontent.com/u/25104879?v=4)](https://github.com/lukasniestroj "lukasniestroj (63 commits)")

---

Tags

deepltypo3typo3-cms-extensiontypo3-extensionautomationtranslationaideepl

### Embed Badge

![Health badge](/badges/werkraum-deepl-translate-slim/health.svg)

```
[![Health](https://phpackages.com/badges/werkraum-deepl-translate-slim/health.svg)](https://phpackages.com/packages/werkraum-deepl-translate-slim)
```

###  Alternatives

[boxblinkracer/phpunuhi

Easy tool to work with translation files for validation, exports, imports and more.

83260.1k26](/packages/boxblinkracer-phpunuhi)[web-vision/wv_deepltranslate

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33304.3k](/packages/web-vision-wv-deepltranslate)[web-vision/deepltranslate-core

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33142.5k8](/packages/web-vision-deepltranslate-core)[leuchtfeuer/locate

Locate - The users country, preferred language and other facts will be detected. Depending on configurable rules the user can be redirected to other languages or pages. Locate also provides geo blocking for configurable pages in configurable countries.

1186.6k](/packages/leuchtfeuer-locate)[om/potrans

Command line tool for translate Gettext with Google Translator API or DeepL API

10520.2k9](/packages/om-potrans)[smousss/laravel-globalize

Make Laravel projects translatable in a matter of seconds!

2169.2k](/packages/smousss-laravel-globalize)

PHPackages © 2026

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