PHPackages                             robole/sulu-ai-translator-bundle - 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. robole/sulu-ai-translator-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

robole/sulu-ai-translator-bundle
================================

Translate any type of content using DeepL

v2.0.0(4mo ago)191.9k↓51.8%7MITJavaScriptPHP ^8.2

Since Jul 4Pushed 4mo ago3 watchersCompare

[ Source](https://github.com/robole-dev/sulu-ai-translator-bundle)[ Packagist](https://packagist.org/packages/robole/sulu-ai-translator-bundle)[ Docs](https://github.com/robole-dev/sulu-ai-translator-bundle)[ RSS](/packages/robole-sulu-ai-translator-bundle/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (6)Dependencies (21)Versions (8)Used By (0)

 [![](icon.svg)](icon.svg)SuluAITranslatorBundle
======================

[](#suluaitranslatorbundle)

> Sulu bundle that integrates DeepL API for bulk and single translations of content fields.

[![GitHub release](https://camo.githubusercontent.com/7f1f1a3c03588fb17b767c06ba913368201aec30284cfa72c560630d111b1343/68747470733a2f2f666c61742e62616467656e2e6e65742f6769746875622f72656c656173652f726f626f6c652d6465762f73756c752d61692d7472616e736c61746f722d62756e646c65)](https://camo.githubusercontent.com/7f1f1a3c03588fb17b767c06ba913368201aec30284cfa72c560630d111b1343/68747470733a2f2f666c61742e62616467656e2e6e65742f6769746875622f72656c656173652f726f626f6c652d6465762f73756c752d61692d7472616e736c61746f722d62756e646c65)[![Supports Sulu 3.0 or later](https://camo.githubusercontent.com/f2718c2009e07cfac604263419b00190db6ce54914f2f86de2f64964e04c642d/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f53756c752f332e302f3532423543393f69636f6e3d706870)](https://camo.githubusercontent.com/f2718c2009e07cfac604263419b00190db6ce54914f2f86de2f64964e04c642d/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f53756c752f332e302f3532423543393f69636f6e3d706870)

[![Demonstration of content field translation](demo.gif)](demo.gif)

Features
--------

[](#features)

- DeepLService to fetch translations and usage statistics from DeepL API
- "Usage statistics" admin view with permission
- Translation button next to input fields
- Toolbar button to bulk translate all fields on page, snippet and article edit views
- Supports Sulu 3

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

[](#installation)

This bundle requires PHP 8.2 or later. Make sure to have installed [Node 18](https://nodejs.org/en/) or later for building the Sulu administration UI.

1. Open a command console, enter your project directory and run:

```
composer require robole/sulu-ai-translator-bundle
```

**⚠️ Sulu 2.6** users please install the v1.1 branch:

```
composer require robole/sulu-ai-translator-bundle:^1.1
```

If you're **not** using Symfony Flex, you'll also need to add the bundle in your `config/bundles.php` file:

```
return [
    //...
    Robole\SuluAITranslatorBundle\SuluAITranslatorBundle::class => ['all' => true],
];
```

2. Register the new routes by adding the following to your `config/routes/sulu_admin.yaml`:

```
sulu_ai_translator:
    resource: "@SuluAITranslatorBundle/Resources/config/routes_admin.yaml"
    prefix: /admin/api
```

3. Add the file `config/packages/sulu_ai_translator.yaml` with the following configuration:

```
sulu_ai_translator:
    deepl_api_key: "%env(DEEPL_API_KEY)%"
    locale_mapping:
        en: "en-GB"
```

Via `locale_mapping` you can map a locale key from your webspace to the according [official DeepL target language](https://developers.deepl.com/docs/resources/supported-languages#target-languages). Use value `null` for languages that should not be translatable.

4. Reference the frontend code by adding the following to your `assets/admin/package.json`:

```
"dependencies": {
    "sulu-ai-translator-bundle": "file:../../vendor/robole/sulu-ai-translator-bundle/src/Resources/js"
}
```

5. Import the frontend code by adding the following to your `assets/admin/app.js`:

```
import "sulu-ai-translator-bundle";
```

6. Install all npm dependencies and build the admin UI ([see all options](https://docs.sulu.io/en/2.5/cookbook/build-admin-frontend.html)):

```
cd assets/admin
npm install
npm run build
```

7. Add your [Deepl API Key](https://support.deepl.com/hc/en-us/articles/360020695820-API-Key-for-DeepL-s-API#h_01HM9MFQ195GTHM93RRY63M18W) to the `.env` file:

```
DEEPL_API_KEY="..."

```

8. Grant permissions in Sulu backend to access "DeepL Usage Statistics" view.

Limitations
-----------

[](#limitations)

- Currently only supports fields of type `input[type="text"]`, `textarea` and ``
- Translations are applied on the frontend, giving content creators the ability to check translation quality and undo changes
- Links to internal pages within text fields have to be updated by hand (obviously)

### Local development

[](#local-development)

1. Add to `repositories` section of `composer.json`:

```
    "repositories": [
        {
            "type": "path",
            "url": "./../local-path-to-bundle"
        }
    ],
```

2. Install bundle:

> composer require robole/sulu-ai-translator-bundle:@dev

3. Check the coding standards:

> composer php-cs

4. Apply coding standards:

> composer php-cs-fix

### Troubleshooting

[](#troubleshooting)

If a translation request returns the input text, it is very likely that the language key(s) defined in your `locale_mapping` bundle configuration are not [supported by DeepL](https://developers.deepl.com/docs/resources/supported-languages#target-languages). This will be indicated in the response object.

### Ideas for next versions

[](#ideas-for-next-versions)

- Add Symfony Recipe for quicker installation of bundle.
- Replace `document.querySelector` with store-based approach for toggling blocks.
- Enable configuration of translation strictness for each language (e.g. formal, informal, etc.)
- Add a dropdown popup next to translation button for overwriting source and target language of a field

### Disclaimer

[](#disclaimer)

This bundle uses the DeepL API to provide translation services. This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with [DeepL SE](https://www.deepl.com) or any of its subsidiaries or affiliates. The use of the DeepL API in this bundle is purely for functionality purposes and does not imply any relationship with the DeepL company.

DeepL is a registered trademark of DeepL SE.

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance77

Regular maintenance activity

Popularity31

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 80% 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 ~121 days

Recently: every ~144 days

Total

6

Last Release

123d ago

Major Versions

v1.1.2 → v2.0.02026-03-03

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/11064439?v=4)[Jens Kabisch](/maintainers/kappaj)[@kappaj](https://github.com/kappaj)

---

Top Contributors

[![FlxRobole](https://avatars.githubusercontent.com/u/142887197?v=4)](https://github.com/FlxRobole "FlxRobole (32 commits)")[![kappaj](https://avatars.githubusercontent.com/u/11064439?v=4)](https://github.com/kappaj "kappaj (4 commits)")[![davidgorges](https://avatars.githubusercontent.com/u/3885619?v=4)](https://github.com/davidgorges "davidgorges (2 commits)")[![eekes](https://avatars.githubusercontent.com/u/9445616?v=4)](https://github.com/eekes "eekes (1 commits)")[![KotaruS](https://avatars.githubusercontent.com/u/34488740?v=4)](https://github.com/KotaruS "KotaruS (1 commits)")

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/robole-sulu-ai-translator-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/robole-sulu-ai-translator-bundle/health.svg)](https://phpackages.com/packages/robole-sulu-ai-translator-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M577](/packages/shopware-core)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M737](/packages/sylius-sylius)[chameleon-system/chameleon-base

The Chameleon System core.

1028.6k5](/packages/chameleon-system-chameleon-base)[symfony/security-bundle

Provides a tight integration of the Security component into the Symfony full-stack framework

2.5k185.6M2.4k](/packages/symfony-security-bundle)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)

PHPackages © 2026

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