DeepL Translate 

Extension key

deepltranslate_core

Package name

web-vision/deepltranslate-core

Version

5.1

Language

en

Copyright

2018

Author

web-vision GmbH

Rendered

Thu, 22 Jan 2026 18:35:13 +0000

License

This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml

The content of this document is related to TYPO3, a GNU/GPL CMS/Framework available from www.typo3.org.

Table of Contents

What does it do? 

This extension provides automatic translation for pages, content and TCA record fields using DeepL supported languages.

Contribution 

Contributions are essential to the success of open source projects, but they are by no means limited to contributing code. Much more can be done, for example by improving the documentation.

Contribution workflow 

  1. Please always create an issue on Github before starting a change. This is very helpful to understand what kind of problem the pull request solves, and whether your change will be accepted.
  2. Bug fixes: Please describe the nature of the bug you wish to report and provide how to reproduce the problem. We will only accept bug fixes if we can can reproduce the problem.
  3. Features: Not every feature is relevant to the majority of users. In addition: We do not want to complicate the usability of this extension for a marginal feature. It helps to have a discussion about a new feature before before opening a pull request.
  4. Please always create a pull request based on the updated release branch. This ensures that the necessary quality checks and tests are performed as a quality can be performed.

Sponsors 

We very much appreciate the sponsorship of the development and features of the DeepL Translate Extension for TYPO3.

DeepL "Add automatic translation flag and hint" sponsored by 

Installation 

The extension has to be installed like any other TYPO3 CMS extension. You can download the extension using one of the following methods:

  1. Use composer: Run

    composer require web-vision/deepltranslate-core
    Copied!

    in your TYPO3 installation.

  2. Get it from the Extension Manager: Switch to the module Admin Tools > Extensions. Switch to Get Extensions and search for the extension key deepltranslate_core and import the extension from the repository.
  3. Get it from typo3.org: You can always get current version from TER by downloading the zip version. Upload the file afterwards in the Extension Manager.

The extension then needs to be configured in order to display translation buttons in the desired languages.

Compatibility 

DeepL Translate supports:

DeepL Translate version TYPO3 Version PHP version Supported
5.0-5.x 12 8.1, 8.2, 8.3, 8.4 yes
4.0-4.x 11-12 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 yes
3.0 9-11 >=7.4 no
2.3 9-11 >=7.4 no

Configuration 

Set up API 

Go to the extension configuration in Admin Tools > Settings > Extension Configuration.

Open the settings for deepltranslate_core and add your API key.

The Extension configuration settings showing two input fields for DeepL API key

The correct DeepL API endpoint for free or pro plans is auto-detected by the extension and the given API key format.

Set up translation language 

  1. Go to Site Management > Sites and edit your site configuration
  2. Switch to tab Languages and open your target

    Site settings for a TYPO3 language showing empty DeepL Target Language dropdown
  3. Go to DeepL Settings and set up your Target Language (ISO Code)

    Selected target now set to German

Choice a Formality 

The formality configuration has been moved from the extension configuration to the SiteConfig languages. The Formality Select field is only displayed if the selected Target-Translate of DeepL is supported.

The same option is available in the Select field as DeepL API Supported.

deeplFormality

deeplFormality
type

string

Sets whether the translated text should lean towards formal or informal language. Possible options:

default
The default setting. If formal or informal depends on the language
less
Less formal language. Will fail, if no formality support for language
more
More formal language. Will fail, if no formality support for language
prefer_less
Use less formal language, if possible, otherwise fallback to default
prefer_more
Use more formal language, if possible, otherwise fallback to default

Configure tables 

If not set by default, you need to define the l10n_mode for the fields you want to have translatable by deepltranslate_core.

See the tableConfiguration for details.

Detecting target language 

The following chain tries to detect the language to translate into:

  1. Set up DeepL Translation language in SiteConfiguration * Target languages detected from DeepL will only appear
  2. Check hreflang against DeepL supported languages * Needed for detecting EN-GB, EN-US, PT-PT or PT-BR
  3. Fallback to Language ISO code

For currently allowed languages see the DeepL conform language key. As this extension retrieves available languages from the API, translations are restricted to the languages listed in the official DeepL API documentation.

If none of these match against DeepL API, translation for this language is disabled for usage within DeepL. Translation buttons and dropdowns respect this setting.

Access Configuration 

Access to the automatic translation functions with Deepl-Translate in the TYPO3 backend can be defined via the following options in the user group settings.

Backend Gruppen Access Right - Custom module options

Allowed Translate

Allowed Translate

This setting controls the visibility of the general translation function in the translation modal of the page module, in the translation options of data records in the list module and in the translation selection in the page header of the page and list module.

Allowed Glossary Sync

Allowed Glossary Sync

This setting allows backend users of a backend user group with corresponding authorisation to synchronise glossary entries of a glossary SysFolder (SysFolder with activated glossary module) towards Deepl.

Auto-translate-prefix 

To enable the tagging of automatically translated pages and content, the page activation of translated pages has been extended to provide a means of control.

This information is passed to the Page Context Fluid template, where it can be used to create a page-specific look.

Page Frontend

To make this easier, you can also use the extension partial.

<f:if condition="{page.tx_wvdeepltranslate_content_not_checked}" >
    <div style="background: #006494; border: #0000cc 1px solid; color: #fff; padding: 10px; text-align: center">
        <f:translate key="LLL:EXT:deepltranslate_core/Resources/Private/Language/locallang.xlf:preview.flag" />
        <f:if condition="{page.tx_wvdeepltranslate_translated_time} > 0" >
            <f:format.date format="{dateFormat}">{page.tx_wvdeepltranslate_translated_time}</f:format.date>
        </f:if>
    </div>
</f:if>
Copied!

Updates 

Version 4.x > 5.x 

Starting with 5.x the composer package name and extension key has been renamed!

You need to migrate the extension settings from ['TYPO3_CONF_VARS']['EXTENSIONS']['wv_deepltranslate'] to ['TYPO3_CONF_VARS']['EXTENSIONS']['deepltranslate_core'].

Then you will need to replace the previous package by uninstalling it first.

composer-mode 

composer remove "web-vision/wv_deepltranslate"
composer require "web-vision/deepltranslate-core":"^5"
Copied!

classic-mode 

  1. Uninstall "wv_deepltranslate" using the Extension Manager. Switch to the module Admin Tools > Extensions and filter for wv_deepltranslate and remove (uninstall) the extension.
  2. Ensure to remove the folder completely. Run

    rm -rf typo3conf/ext/wv_deepltranslate
    Copied!
  3. Get it from the Extension Manager: Switch to the module Admin Tools > Extensions. Switch to Get Extensions and search for the extension key deepltranslate_core and import the extension from the repository.
  4. Get it from typo3.org: You can always get current version from TER by downloading the zip version. Upload the file afterwards in the Extension Manager.

Version 3.x > 4.x 

If you are upgrading from 3.x on TYPO3 11 LTS to 12 LTS and you have used the site config setup for translations, you can simply update.

Upgrade with Core Upgrade 

If you are upgrading from a TYPO3 version below v11, you need to define the target languages in the site configuration. See site-setup-section in this documentation.

Version 2.x > 3.x 

Run the Upgrade wizard shipped with version 3. The wizard only appears, if necessary:

Screenshot ob backend Upgrade wizard

This wizard moves your glossaries to the new structure, fixes backend group rights and changes the module name.

After this, you have to run a GlossarySync update, either by CLI or by backend

  1. sync-cli
  2. glossaries

Basic Usage 

Translating content elements 

Once the extension is installed and the API key provided, we are ready to start translating content elements. When translating a content element, there are four additional options besides the normal translate and copy.

  • DeepL Translate (auto detect).
  • DeepL Translate.
DeepL Options

DeepL translate options

Translating a page 

deepltranslate_core adds a separate dropdown for DeepL translation of a page to the list and web module. The dropdown is filtered to not translated pages and against DeepL API possible translation languages.

Dropdown for DeepL translation

Translating a single element 

In list view, you are able to translate single elements by clicking the DeepL translate button for the language you want.

Translation buttons in list view

Languages that are not available will have no DeepL button. In this case, use normal translation.

Translation button for tx_news, one language not available in DeepL

Auto-translate-prefix 

To enable tagging of automatically translated pages and content, the page turned on of translated pages has been extended to implement a control.

Page Property DeepL Translate

Each time content is translated, the fields are updated.


The field information "Last translation date" and "DeepL Translated content has not been checked" are always transferred to the page object and can be queried in Fluid.

In this way, information and notes can be controlled in the Fluid template if required. This must be added to the template by a TYPO3 administrator or developer.

Page Frontend prefix

When an editor is previewing a hidden page translated by DeepL, a DeepL badge is displayed in addition to the "Preview" badge in the upper right corner.

Page frontend preview

FAQ 

My dropdown in the site configuration is empty 

This happens if TYPO3 cached the request from the DeepL API for allowed languages, but no API key was provided. In this case, empty your system cache in TYPO3. Normally no cache files should be created when no API key is provided.

If this step does not work, delete the cached files manually. The location is as follows:

  • composer based installation
    var/cache/data/wvdeepltranslate
  • legacy installation
    typo3temp/var/cache/data/wvdeepltranslate

After deleting the files in this directory and going to Site Configuration, the extension will reload the cache and the dropdown should have all the translatable language keys.

What will be the cost for DeepL API subscription? 

You can find all the details regarding the usage of the DeepL API here:

Extension Configuration 

Some general settings must be configured in the Extension Configuration.

  1. Go to Admin Tools > Settings > Extension Configuration
  2. Choose deepltranslate_core
Screenshot of Extension configuration

DeepL API Key 

apiKey

apiKey
type

string

Add your DeepL API Key here.

Table Configuration 

deepltranslate_core supports the translation of specific fields of TCA records. It only understands fields to be translated only if their l10n_mode is set to prefixLangTitle.

deepltranslate_core uses a DataHandler hook to detect translatable fields.

The following setup is required to make deepltranslate_core work on your table:

<extension_key>/Configuration/TCA/Overrides/<table_name>.php
$GLOBALS['TCA']['<table_name>']['columns']['<field_name>']['l10n_mode'] = 'prefixLangTitle';
$GLOBALS['TCA']['<table_name>']['columns']['<another_field_name>']['l10n_mode'] = 'prefixLangTitle';
Copied!

Known issues 

Translation options not shown 

When API key is not set, deepltranslate_core disables all functions. Go to Settings and fix it. Clear cache after this.