ModifyLanguagePacksEvent

New in version 12.2

The PSR-14 event \TYPO3\CMS\Install\Service\Event\ModifyLanguagePacksEvent allows to ignore extensions or individual language packs for extensions when downloading language packs.

The options of the language:update command can be used to further restrict the download (ignore additional extensions or download only certain languages), but not to ignore decisions made by the event.

Example

Registration of the event:

EXT:my_extension/Configuration/Services.yaml
services:
  # Place here the default dependency injection configuration

  MyVendor\MyExtension\Install\EventListener\MyEventListener:
    tags:
      - name: event.listener
        identifier: 'my-extension/modify-language-packs'
Copied!

Read how to configure dependency injection in extensions.

An implementation of the event listener:

EXT:my_extension/Classes/Install/EventListener/MyEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Install\EventListener;

use TYPO3\CMS\Install\Service\Event\ModifyLanguagePacksEvent;

final class MyEventListener
{
    public function __invoke(ModifyLanguagePacksEvent $event): void
    {
        $extensions = $event->getExtensions();
        foreach ($extensions as $key => $extension) {
            // Do not download language packs from Core extensions
            if ($extension['type'] === 'typo3-cms-framework') {
                $event->removeExtension($key);
            }
        }

        // Remove German language pack from EXT:styleguide
        $event->removeIsoFromExtension('de', 'styleguide');
    }
}
Copied!

API

class \TYPO3\CMS\Install\Service\Event\ ModifyLanguagePacksEvent

Event to modify the language pack array

getExtensions ( )
returntype

array

removeExtension ( string $extension)
param string $extension

the extension

removeIsoFromExtension ( string $iso, string $extension)
param string $iso

the iso

param string $extension

the extension