Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
134 lines (90 sloc) 3.06 KB


This bundle's purpose is to provide an interface for edition, addition and deletion of translations messages.

Currently supported formats:

  • YAML
  • CSV

Install & setup the bundle

  1. Install via composer
    composer require docteurklein/translator-bundle=~3.0
  1. Add the bundle to your AppKernel class
    // app/AppKernerl.php
    public function registerBundles()
        $bundles = array(
            // ...
            new Knp\Bundle\TranslatorBundle\KnpTranslatorBundle,
            // ...
        // ...
  1. Add routing
    // app/config/routing.yml

        resource: @KnpTranslatorBundle/Resources/config/routing/edition.yml
            prefix:   /trans/admin

        resource: @KnpTranslatorBundle/Resources/config/routing/routing.yml
            prefix:   /trans

These route files provide the following routes:

[router] Current routes
Name                     Method  Pattern
knplabs_translator_list  GET    /trans/admin/list
knplabs_translator_get   GET    /trans/{id}/{domain}/{locale}
knplabs_translator_put   PUT    /trans/

Minimal configuration

This bundle requires the activation of the core translator:

    // app/config/config.yml
        # ...
        translator:    { fallback: en }
        # ...

Additional configuration

This bundle relies on the Ext Core library. You can decide wheter or not it will be included automatically.

        include_vendor_assets: false # defaults to true


This bundle introduces those services:

knp_translator.dumper.csv                    container Knp\Bundle\TranslatorBundle\Dumper\CsvDumper
knp_translator.dumper.xliff                  container Knp\Bundle\TranslatorBundle\Dumper\XliffDumper
knp_translator.dumper.yaml                   container Knp\Bundle\TranslatorBundle\Dumper\YamlDumper
knp_translator.writer                        container Knp\Bundle\TranslatorBundle\Translation\Writer

controllers are services too:

knp_translator.controller.edition    request   Knp\Bundle\TranslatorBundle\Controller\EditionController
knp_translator.controller.translator request   Knp\Bundle\TranslatorBundle\Controller\TranslatorController


Updating a given translation key is really simple:

    $this->get('translator.writer')->write('the key to translate', 'the translated string', 'messages', 'en');

Rest API

  • Update english translations files for domain tests with translated value for key
    curl -X PUT http://project-url/trans/  \
        -F '' \
        -F 'domain=messages' \
        -F 'locale=en' \
        -F 'value=translate value' 
  • Get the translated value of key for english locale for tests domain
    curl http://project-url/trans/