PHPackages                             heimrichhannot/contao-dc-multilingual-utils-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. heimrichhannot/contao-dc-multilingual-utils-bundle

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

heimrichhannot/contao-dc-multilingual-utils-bundle
==================================================

This bundle offers functionality concerning terminal42/contao-DC\_Multilingual for the Contao CMS.

0.8.4(3y ago)0375LGPL-3.0-or-laterPHPPHP ^7.4 || ^8.0

Since Mar 21Pushed 3y ago5 watchersCompare

[ Source](https://github.com/heimrichhannot/contao-dc-multilingual-utils-bundle)[ Packagist](https://packagist.org/packages/heimrichhannot/contao-dc-multilingual-utils-bundle)[ RSS](/packages/heimrichhannot-contao-dc-multilingual-utils-bundle/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (4)Dependencies (3)Versions (21)Used By (0)

Contao DC\_Multilingual Utils Bundle
====================================

[](#contao-dc_multilingual-utils-bundle)

This bundle offers functionality concerning [terminal42/contao-DC\_Multilingual](https://github.com/terminal42/contao-DC_Multilingual) for the Contao CMS.

Features
--------

[](#features)

- adds multilanguage support for tl\_content
- adds shortcut functions for rapidly activating DC\_Multilingual support for a given DCA
- adds multilanguage support for [madeyourday/contao-rocksolid-custom-elements](https://github.com/madeyourday/contao-rocksolid-custom-elements)
- adds insert tags for generating multilingual event, news or faq urls
- **caution**: overrides the id handling of DC\_Multilingual v4+ to the v3 behavior (the record with the joined translation has its id set to the id of the translation record)

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

[](#installation)

1. Install via composer: `composer require heimrichhannot/contao-dc-multilingual-utils-bundle`.
2. Activate `DC_Multilingual` support for `tl_content` (not optional):

```
/**
 * @Hook("loadDataContainer")
 */
class LoadDataContainerListener
{
    private DcMultilingualUtil $multilingualUtil;

    public function __invoke(string $table): void
    {
        if ('tl_content' === $table) {
            $this->multilingualUtil->addDcMultilingualSupport(
                $table, ['de', 'en', 'pl'], 'de', [ 'text', 'rsce_data' ]
            );
        }
    }
}
```

Technical details
-----------------

[](#technical-details)

### Insert tags

[](#insert-tags)

The following new tags are available:

NameExample`{{dcmu_news_url::::}}``{{dcmu_news_url::1::de}}``{{dcmu_event_url::::}}``{{dcmu_event_url::5::es}}``{{dcmu_faq_url::::}}``{{dcmu_faq_url::8::en}}`### Activate DC\_Multilingual rapidly using the shortcut functions

[](#activate-dc_multilingual-rapidly-using-the-shortcut-functions)

Simply call the following code:

```
/**
 * @Hook("loadDataContainer")
 */
class LoadDataContainerListener
{
    private DcMultilingualUtil $multilingualUtil;

    public function __invoke(string $table): void
    {
        if ('tl_content' === $table) {
            $this->multilingualUtil->addDcMultilingualSupport(
                $table, // Table name
                ['de', 'en', 'pl'], // Supported languages
                'de', // Fallback language
                [ // the translatable fields
                    'text', // add fields here...
                    'rsce_data' // add this if you have rocksolid custom elements (tl_content only)
                ],
                [ // options
                    'langColumnName', // the language field in the dca's records (you have a record for every language and this column holds which one it is)
                    'langPid', // this field holds the parent record of every translated record
                ]
            );
            break;
        }
    }
}
```

### Notes on overridden classes

[](#notes-on-overridden-classes)

For generating content elements which respect the multilanguage records created using DC\_Multilingual in the backend, it's necessary to override the `ContentModel`, because Contao calls the core's ContentModel directly in `Controller`:

`$objRow = ContentModel::findByPk($intId);`

But for getting Contao to output the *translated* Elements, we need to use our own `ContentModel` inheriting from the class `Terminal42\DcMultilingualBundle\Model\Multilingual/Multilingual`.

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 90.9% 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 ~77 days

Recently: every ~83 days

Total

20

Last Release

1185d ago

PHP version history (2 changes)0.0.1PHP ^7.1

0.8.1PHP ^7.4 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/28ad3224d8727b622ebd229840eea6b9dbcb83eb0bd609e6ce65b614830ff538?d=identicon)[digitales@heimrich-hannot.de](/maintainers/digitales@heimrich-hannot.de)

---

Top Contributors

[![koertho](https://avatars.githubusercontent.com/u/12064642?v=4)](https://github.com/koertho "koertho (10 commits)")[![vvohh](https://avatars.githubusercontent.com/u/75325799?v=4)](https://github.com/vvohh "vvohh (1 commits)")

### Embed Badge

![Health badge](/badges/heimrichhannot-contao-dc-multilingual-utils-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/heimrichhannot-contao-dc-multilingual-utils-bundle/health.svg)](https://phpackages.com/packages/heimrichhannot-contao-dc-multilingual-utils-bundle)
```

###  Alternatives

[metamodels/core

MetaModels core

10156.4k68](/packages/metamodels-core)[heimrichhannot/contao-encore-bundle

This bundle brings deep integration for symfony encore into contao. On the one hand, your can prepare your bundles to define own webpack entries, which added with just one command to your webpack entries. On the other hand, this bundle allows you to add encore entries only on the pages you need them for optimizing your website performance.

1016.6k](/packages/heimrichhannot-contao-encore-bundle)[codefog/contao-news_categories

News Categories bundle for Contao Open Source CMS

3189.0k6](/packages/codefog-contao-news-categories)[terminal42/contao-node

Node bundle for Contao Open Source CMS

3177.0k6](/packages/terminal42-contao-node)[markocupic/calendar-event-booking-bundle

Contao Calendar Event Booking Bundle

135.2k1](/packages/markocupic-calendar-event-booking-bundle)

PHPackages © 2026

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