vardumper/ibexa-theme-translations-bundle

Ibexa DXP bundle for managing theme translations with tiered caching (static PHP arrays + Redis + Database)

Maintainers

Package info

github.com/vardumper/IbexaThemeTranslationsBundle

Type:symfony-bundle

pkg:composer/vardumper/ibexa-theme-translations-bundle

Statistics

Installs: 11

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-03-15 20:08 UTC

This package is auto-updated.

Last update: 2026-03-15 21:23:43 UTC


README

Ibexa Logo

IbexaThemeTranslationsBundle

Code Coverage

This is a bundle for Ibexa DXP. It allows managing string translations for use in themes outside Ibexa's regular content object and translation logic. While there are a couple of i18n concepts pre-included with Ibexa, they lack a user interface. So here's a simple Doctrine ORM based approach with a UI, string search, Deepl intehration, and very basic approval flow for translation editors.

Requirements

  • Ibexa DXP >= v5.0
  • Ibexa DXP >= v4.4 (untested)
  • Ibexa Automated Translations installed, activated and configured ibexa/automated-translation if you want to use Deepl Translations

Features

  • Supports Deepl Free API Key - by replacing the Ibexas' default Deepl Client
  • 3-layered caching: OPCache via static PHP Array and Redis if available
  • Event Listeners warm caches when there are changes
  • Brings a console command for cache warming
  • Supports headless frontends by providing JSON and Typescript language files
  • Allows importing/exporting translations to and from CSV
  • Supports Doctrine Fixtures to pre-popultae translations.
  • Supports Ibexa DXP v5.0+ and v4.4+

Installation

1. Install the bundle

If your project uses Symfony Flex (recommended), the bundle, its configuration, and routes are registered automatically:

composer require vardumper/ibexa-theme-translations-bundle

2. Update DB Schema

bin/console doctrine:schema:update --em=default --force
Manual installation (without Symfony Flex)

Register the bundle in your config/bundles.php:

return [
    // ...
    vardumper\IbexaThemeTranslationsBundle\IbexaThemeTranslationsBundle::class => ['all' => true],
];

Register Entities

# config/packages/ibexa_theme_translations.yaml
doctrine:
    orm:
        mappings:
            IbexaThemeTranslationsBundle:
                type: attribute
                is_bundle: false
                dir: '%kernel.project_dir%/vendor/vardumper/ibexa-theme-translations-bundle/src/Entity'
                prefix: 'vardumper\IbexaThemeTranslationsBundle\Entity'
                alias: IbexaThemeTranslations

Register Routes

# config/routes/ibexa_theme_translations.yaml
ibexa_theme_translations:
    resource: '@IbexaThemeTranslationsBundle/config/routes.yaml'

Update DB Schema

bin/console doctrine:schema:update --em=default --force

Run Tests

This library is fully unit tested with PEST. You can run the tests by executing the following commands in the root directory of the project.

Unit Tests

vendor/bin/pest

Coverage Report

You can also generate a coverage report by running the following command.

XDEBUG_MODE=coverage vendor/bin/pest --coverage-html=coverage-report