leyer/translation-addition

This bundles enables edition of translations directly from your application user interface using Javascript.


Keywords
symfony, i18n, javascript, jms, translator, inline, internationalization, addition, edition
License
MIT

Documentation

TranslationAdditionBundle

This bundles enables edition of translations directly from your application user interface using Javascript.

Latest Stable Version Total Downloads Latest Unstable Version License

Installation

Install the bundle with composer:

composer require "leyer/translation-addition"

You have to register the bundle in app/AppKernel.php:

public function registerBundles()
{
    if (in_array($this->getEnvironment(), ['dev', 'test'])) {
        $bundles[] = new Leyer\TranslationAdditionBundle\LeyerTranslationAdditionBundle();
    }
}

If you use the AsseticBundle, you should publish this bundle's assets:

assetic:
    bundles:
        - LeyerTranslationAdditionBundle
php app/console assets:install --symlink web

JQuery is required for inline edition, it can be installed with bower.

A symfony bundle is available here.

Usage

Edit translation inline

Inline edition require a translation updater.

If you used JMSTranslationBundle an adapter updater is already available. Don't forget to add at least one configuration:

leyer_translation_addition:
    inline_translation: ~
    
jms_translation:
    configs:
        app:
            dir: [%kernel.root_dir%]
            output_dir: %kernel.root_dir%/Resources/translations

If you want to used your own updater, you must implement TranslationUpdaterInterface and enable your updater service in the configuration:

leyer_translation_addition:
    inline_translation:
        updater: my_adapter_definition

Register the routing in app/config/routing_dev.yml:

_leyer_translation_addition:
    resource: "@LeyerTranslationAdditionBundle/Resources/config/routing.yml"
    prefix:   /_trans

Now you must include js and css files:

{% if app.environment == 'dev' %}
    <script src="{{ asset('bundles/leyertranslationaddition/js/translator.js') }}" type="text/javascript"></script>
{% endif %}
{% if app.environment == 'dev' %}
        <link rel="stylesheet" href="{{ asset('bundles/leyertranslationaddition/css/translator.css') }}"/>
{% endif %}

To do:

Tooltip css.