PHPackages                             ppl/ppl-deepl-v3-translate - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. ppl/ppl-deepl-v3-translate

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

ppl/ppl-deepl-v3-translate
==========================

TYPO3 14 extension for DeepL V3 text and file translation in frontend plugins and backend modules

14.3.1(3w ago)00GPL-2.0-or-laterPHPPHP &gt;=8.2CI failing

Since May 25Pushed 2w agoCompare

[ Source](https://github.com/pliou/ppl_deepl_v3_translate)[ Packagist](https://packagist.org/packages/ppl/ppl-deepl-v3-translate)[ RSS](/packages/ppl-ppl-deepl-v3-translate/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (14)Versions (12)Used By (0)

PPL DeepL V3 Translate
======================

[](#ppl-deepl-v3-translate)

TYPO3 14 extension for DeepL V3 text and file translation in frontend content elements and backend modules.

The extension provides the product UI, TYPO3 controllers, templates and frontend access handling. DeepL HTTP communication and shared V3 approval storage are delegated to `ppl/ppl-deepl-v3-requests`.

Features
--------

[](#features)

- Frontend content element for text translation.
- Frontend content element for file translation.
- Backend module for text translation.
- Backend module for file translation.
- Backend configuration module for languages, glossaries, style rules and frontend access.
- Local approval workflow for fetched DeepL languages.
- Local approval workflow for fetched DeepL glossaries.
- Local approval workflow for fetched DeepL V3 style rules.
- Target-language filtering for glossaries and style rules.
- Optional custom instructions for text translation.
- Frontend access control through TYPO3/felogin login page redirects.

V3 Architecture
---------------

[](#v3-architecture)

`ppl_deepl_v3_translate` is a standalone TYPO3 extension, but it does not talk to DeepL directly. The package uses the local adapter `V3RequestAdapter`, which calls services from `ppl_deepl_v3_requests`.

This keeps the translate package focused on TYPO3 behavior:

- Controllers and Fluid templates.
- Backend modules and frontend plugins.
- Validation and language/glossary/style-rule selection.
- UI access to shared approved data.
- Frontend login and logout handling.

The request package owns the DeepL REST details:

- API base URL.
- Auth key lookup.
- HTTP client calls.
- DeepL V3 response handling.

Related DeepL V3 Packages
-------------------------

[](#related-deepl-v3-packages)

The DeepL V3 line is split into focused TYPO3 extensions:

- `ppl/ppl-deepl-v3-requests` (`ppl_deepl_v3_requests`): shared request and configuration layer. It owns the DeepL API key lookup, endpoint selection, HTTP calls, language/glossary/style-rule fetches, custom instructions and shared approval storage.
- `ppl/ppl-deepl-v3-translate` (`ppl_deepl_v3_translate`): this package. It provides frontend content elements and backend modules for interactive text and file translation.
- `ppl/ppl-deepl-v3-batch-translation` (`ppl_deepl_v3_batch_translation`): backend workspace for translating TYPO3 page trees, pages and content elements with preflight review and controlled record writes.
- `ppl/ppl-deepl-v3-extension-translator` (`ppl_deepl_v3_extension_translator`): backend audit and repair module for extension XLF files, missing translation keys and selected write actions with backups.

All V3 packages that call DeepL should go through `ppl_deepl_v3_requests`. Translate, Batch Translation and Extension Translator share approved languages, glossaries, style rules and custom-instruction presets through that request package.

Relationship To HDA DeepL V2
----------------------------

[](#relationship-to-hda-deepl-v2)

PPL DeepL V3 Translate builds on the product and workflow foundation of HDA DeepL V2 Translate. The frontend elements, backend modules, language approval flow, glossary approval flow and access configuration stay aligned where possible, but V2 and V3 remain separate TYPO3 extensions at Composer, namespace, storage and API-client level.

HDA DeepL V2 package:

- Extension key: `hda_deepl_v2_translate`
- Composer package: `hda-ppl/hda-deepl-v2-translate`
- Namespace: `HdaPpl\HdaDeeplV2Translate`
- DeepL access: `deeplcom/deepl-php`
- V3 request package: not required
- V3-only controls: not available
- Runtime storage: `var/hda_deepl_v2_translate/`

V3 package:

- Extension key: `ppl_deepl_v3_translate`
- Composer package: `ppl/ppl-deepl-v3-translate`
- Namespace: `Ppl\PplDeeplV3Translate`
- DeepL access: `ppl/ppl-deepl-v3-requests`
- Direct `DeepL\DeepLClient` usage: not used
- V3-only controls: style rules and custom instructions

Historical V2 package names are intentionally not used in this release documentation. The important V3 differences are the request adapter, V3-only capabilities and separate V3 runtime storage.

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

[](#requirements)

- TYPO3 CMS 14
- PHP 8.2 or newer
- `ppl/ppl-deepl-v3-requests` 14
- A DeepL API key with access to the used V3 features

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

[](#installation)

Install the request package and the translate package:

```
composer require ppl/ppl-deepl-v3-requests:^14.0 ppl/ppl-deepl-v3-translate:^14.0
```

Run the TYPO3 extension setup if your deployment does not do it automatically:

```
vendor/bin/typo3 extension:setup
vendor/bin/typo3 cache:flush
```

Include the shipped TypoScript setup when frontend content elements are used.

DeepL Configuration
-------------------

[](#deepl-configuration)

Configure the DeepL key in the request package, not in this translate package.

TYPO3 extension configuration:

```
'EXTENSIONS' => [
    'ppl_deepl_v3_requests' => [
        'authKey' => 'your-deepl-auth-key',
    ],
],
```

Optional endpoint host settings also belong to the request package.

Do not commit API keys to the repository. This package ships no API key and no TypoScript auth-key fallback.

Backend Workflow
----------------

[](#backend-workflow)

Open the TYPO3 backend module group `PPL DeepL V3`.

Configuration module:

1. Fetch languages from DeepL.
2. Approve the languages that may be used in frontend and backend selections.
3. Fetch glossaries from DeepL.
4. Approve the glossaries that may be selectable.
5. Fetch style rules from DeepL.
6. Approve style rules and use their target-language metadata for filtering.
7. Configure frontend access behavior.

Translation module:

1. Select source and target language.
2. Enter text.
3. Optionally choose an approved glossary.
4. Optionally choose an approved V3 style rule.
5. Optionally enter custom instructions.
6. Translate and copy the output.

File translation module:

1. Select source and target language.
2. Optionally choose an approved glossary.
3. Upload a supported document.
4. Start document translation.

Supported file upload types are TXT, PDF, DOCX and PPTX. Uploads are limited to 10 MiB per file and are checked server-side by file size, extension, MIME type and document magic bytes before a translation request is started. The limit is defined in `DocumentUploadValidationService::MAX_UPLOAD_BYTES` for local project changes.

Frontend Workflow
-----------------

[](#frontend-workflow)

Editors can create content elements for:

- DeepL V3 text translation.
- DeepL V3 file translation.

The frontend UI only exposes locally approved languages, glossaries and style rules. If no API key is configured, the UI renders a missing-key state instead of triggering a remote request.

Frontend Access
---------------

[](#frontend-access)

The extension supports TYPO3/felogin login page redirects only. Stored legacy values such as `ppl_login` are normalized to `login_page`; `allowFrontendUsers` and `allowBackendUsers` are ignored and removed from saved extension configuration on the next frontend-access save.

TYPO3/felogin login page:

- Redirects to the configured login page UID.
- Sends `return_url` and `redirect_url`.
- Requires the felogin plugin redirect mode `Defined by GET/POST Parameters`.

Custom site header login links are outside of the extension redirect flow. If they should return to the protected DeepL page, they need their own valid redirect handling.

Shared Storage
--------------

[](#shared-storage)

Reusable DeepL V3 metadata is stored by `ppl_deepl_v3_requests` inside the TYPO3 var directory:

- `var/ppl_deepl_v3_requests/languages.json`
- `var/ppl_deepl_v3_requests/glossaries.json`
- `var/ppl_deepl_v3_requests/style-rules.json`
- `var/ppl_deepl_v3_requests/custom-instructions.json`

Existing files from `var/ppl_deepl_v3_translate/` are migrated by the request services on first read. New writes go to the request package storage path. These files are runtime data and should not be committed to package repositories.

Security Notes
--------------

[](#security-notes)

- Do not commit DeepL API keys.
- Do not expose backend-only modules to unauthenticated users.
- Frontend access is delegated to TYPO3/felogin. This package no longer performs direct frontend-user or backend-user password checks and no longer sets a PPL frontend-login cookie.
- Backend POST actions use TYPO3 FormProtection tokens for configuration saves, approval writes, backend text translation and backend file translation.
- File uploads are checked by size, extension, MIME type and magic bytes. Failed validation stops before a DeepL document translation request.
- Translated files are still written below `fileadmin/user_upload/translated/` for download in this release line. That path is publicly reachable in typical TYPO3 webroots, so private signed downloads remain an open hardening task.
- The translate package does not directly depend on `deeplcom/deepl-php`.
- The translate package expects all V3 HTTP behavior to go through `ppl_deepl_v3_requests`.

Release Line
------------

[](#release-line)

Version `14.x` is the TYPO3 14 release line; see the official [TYPO3 system requirements](https://docs.typo3.org/m/typo3/tutorial-getting-started/main/en-us/Installation/SystemRequirements/Index.html).

License
-------

[](#license)

This extension is released under the GNU General Public License v2.0 or later, aligned with HDA DeepL V2 Translate and the common TYPO3 extension license. See `LICENSE`.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance96

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity53

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

Total

11

Last Release

15d ago

Major Versions

v12.4.1 → 14.3.02026-06-01

13.4.1 → 14.3.12026-06-28

12.4.x-dev → 13.4.x-dev2026-07-09

13.4.x-dev → 14.3.x-dev2026-07-09

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/131469?v=4)[Lesior](/maintainers/PPL)[@ppl](https://github.com/ppl)

---

Top Contributors

[![pliou](https://avatars.githubusercontent.com/u/45556500?v=4)](https://github.com/pliou "pliou (7 commits)")

### Embed Badge

![Health badge](/badges/ppl-ppl-deepl-v3-translate/health.svg)

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

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k57](/packages/friendsoftypo3-content-blocks)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1595.5k](/packages/eliashaeussler-typo3-form-consent)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

22260.2k](/packages/eliashaeussler-typo3-warming)[yoast-seo-for-typo3/yoast_seo

Yoast SEO for TYPO3

511.7M9](/packages/yoast-seo-for-typo3-yoast-seo)

PHPackages © 2026

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