PHPackages                             jvelletti/jv-deepltranslate-piflexform - 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. jvelletti/jv-deepltranslate-piflexform

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

jvelletti/jv-deepltranslate-piflexform
======================================

Extends the extension wv\_deepltranslate to handle translations of flexforms.

13.4.1(3mo ago)0154[1 issues](https://github.com/velletti/jv_deepltranslate_piflexform/issues)GPL-3.0-or-laterPHP

Since Feb 11Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/velletti/jv_deepltranslate_piflexform)[ Packagist](https://packagist.org/packages/jvelletti/jv-deepltranslate-piflexform)[ RSS](/packages/jvelletti-jv-deepltranslate-piflexform/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (9)Used By (0)

jv\_deepltranslate\_piflexform
==============================

[](#jv_deepltranslate_piflexform)

Overview
--------

[](#overview)

`jv_deepltranslate_piflexform` is a TYPO3 extension that integrates DeepL translation services into the TYPO3 backend. It provides functionalities to translate also pi Flexform in tt\_content elements using DeepL. uses web-vision/deepltranslate\_core as base library to integrate DeepL API.

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

[](#installation)

To install this extension, use Composer:

```
composer require jvelletti/jv_deepltranslate_piflexform

## configuration
1. install first the extension `deepltranslate_core` and configure the API key if not done
2. add a configuration array in the  `ext_tables.php` in yout template extension  to configure the extension

```php

 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['jv_deepltranslate_piflexform']['fieldsToTranslate'] = [
            // Fields from default flexforms
           'settings.content'            => [],
           'settings.content1'           => [],
           'settings.content2'           => [],
           'settings.content3'           => [],

           'settings.headline'           => [],
           'settings.headlineColumns'    => [],
           'settings.headlineColumn1'    => [],
           'settings.headlineColumn2'    => [],
           'settings.headlineColumn3'    => [],
           'settings.headlineColumn4'    => [],
           'settings.headlineTable'      => [],
           'settings.headlineFirstPart'  => [],
           'settings.headlineSecondPart' => [],

           'settings.info1'              => [],
           'settings.info2'              => [],
           'settings.info3'              => [],

           'settings.subline1'           => [],
           'settings.subline2'           => [],
           'settings.videoLinkText'      => [],

           'settings.dateMonth'          => [],
           'settings.category'           => [],

           'settings.quote'              => [],
           'settings.author'             => [],
           'settings.location'           => [],

           'settings.referenceType'      => [],

            // Nested flexforms => function translateNestedFlexform()
            // Example (function matrix):
            // settings.tableRow->el->'...'->settings.tableRowElement->'el'->flexFormFieldsToTranslate

            // Accordion (flexform_accordion.xml)
           'settings.accordionElements' => [
              'translateNestedFlexform' => true,
              'mainFlexformField' => 'settings.accordionElement',
              'flexFormFieldsToTranslate' => [
                 'headline',
                 'text',
              ],
           ],

            // Contacts (flexform_contacts.xml)
           'settings.contactsElements' => [
              'translateNestedFlexform' => true,
              'mainFlexformField' => 'settings.contactsElement',
              'flexFormFieldsToTranslate' => [
                 'text',
              ],
           ],

            // Function matrix (flexform_functionMatrix.xml)
           'settings.tableRow' => [
              'translateNestedFlexform' => true,
              'mainFlexformField' => 'settings.tableRowElement',
               // We leave out the fields "option{nr}" (=> value is 'yes'/'no')
              'flexFormFieldsToTranslate' => [
                 'headlineRow',
                 'descriptionRow',
                 'alternativeText1',
                 'alternativeText2',
                 'alternativeText3',
                 'alternativeText4',
              ],
           ],
        ];

```

Internal reminder for the extension maintainer:
-----------------------------------------------

[](#internal-reminder-for-the-extension-maintainer)

To Update this extension in TER: change version Number to "x.y.z" in ext\_emconf.php, Documentation\\ in Settings.cfg and Index.rst create Tag "x.y.z" git push --tags

create new zip file: cd vendor/jvelletti/jv-deepltranslate-piflexform git archive -o jv\_deepltranslate\_piflexform\_x.y.z.zip" HEAD git archive -o jv\_deepltranslate\_piflexform\_12.4.3.zip" HEAD

Upload ZIP File to git push

check: [https://packagist.org/packages/jvelletti/jv\_deepltranslate\_piflexform](https://packagist.org/packages/jvelletti/jv_deepltranslate_piflexform)[https://extensions.typo3.org/extension/jv\_deepltranslate\_piflexform/](https://extensions.typo3.org/extension/jv_deepltranslate_piflexform/)

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance79

Regular maintenance activity

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity43

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

Recently: every ~85 days

Total

8

Last Release

110d ago

Major Versions

12.4.6 → 13.4.02025-05-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/59e5dc94c0b20e44ad7515599058d158fedbf1554b9edd67486a87dfabe6686c?d=identicon)[jvelletti](/maintainers/jvelletti)

---

Top Contributors

[![velletti](https://avatars.githubusercontent.com/u/912094?v=4)](https://github.com/velletti "velletti (10 commits)")

### Embed Badge

![Health badge](/badges/jvelletti-jv-deepltranslate-piflexform/health.svg)

```
[![Health](https://phpackages.com/badges/jvelletti-jv-deepltranslate-piflexform/health.svg)](https://phpackages.com/packages/jvelletti-jv-deepltranslate-piflexform)
```

###  Alternatives

[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.

1182.8k](/packages/leuchtfeuer-locate)[undefined/translate-locallang

Backend Module for creating and editing of language files (locallang.xlf).

12256.9k2](/packages/undefined-translate-locallang)[evoweb/ew-llxml2xliff

Convert locallang.xml/.php files to .xlf

1045.7k1](/packages/evoweb-ew-llxml2xliff)[snowflakech/snowbabel

Translation Extension.Snowflake productions gmbh was the pioneers of this extension and handed over this to PIT Solutions Pvt Ltd in 2016 and sponsored by BIBUS AG.

101.4k](/packages/snowflakech-snowbabel)

PHPackages © 2026

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