1. Installation

1.1. Download the Bundle

composer require sonata-project/translation-bundle

1.2. Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in bundles.php file of your project:

// config/bundles.php

return [
    // ...
    Sonata\TranslationBundle\SonataTranslationBundle::class => ['all' => true],
];

1.3. Configure the Bundle

To use the TranslationBundle, add the following lines to your application configuration file:

# config/packages/sonata_translation.yaml

sonata_translation:
    locales: [en, fr, it, nl, es]
    default_locale: en
    # change default behavior for translated field filtering.
    default_filter_mode: gedmo # must be either 'gedmo' or 'knplabs', default: gedmo
    # here enable the types you need
    gedmo:
        enabled: true
        # when using gedmo/doctrine-extensions, you have to register a translatable listener
        # service or if you are using a bundle that integrates the library, it will be registered
        # by the bundle (e.g. "stof_doctrine_extensions.listener.translatable" for "stof/doctrine-extensions-bundle").
        # here you can provide a custom translatable listener service name.
        translatable_listener_service: Gedmo\Translatable\TranslatableListener
    knplabs:
        enabled: true

sonata_block:
    blocks:
        sonata_translation.block.locale_switcher:

Key

Description

locales

The list of your frontend locales in which your models will be translatable.

default_locale

The locale, loaded in your forms by default.

Note

If you are using the SonatAdminBundle with the SonataDoctrineORMAdminBundle, you should read the ORM chapter.

1.4. Import the Styles

Install SonataTranslationBundle web assets under your public web directory:

bin/console assets:install

Add CSS file to your SonataAdminBundle config:

# config/packages/sonata_admin.yaml

sonata_admin:
    assets:
        extra_stylesheets:
            - bundles/sonatatranslation/css/sonata-translation.css

Now, you’re good to go!