Developed with love by KnpLabs Hire us for your project!
0

TranslationsBundle

by ongr-io

Translations GUI for translating Symfony static strings

ONGR Translations Bundle

This bundle provides graphical user interface for translations management. It
enables easy control and manipulation of translation files stored in multiple
domains in your entire project. Translations can be automatically collected
from and dumped into your project.

Stable Release
Build Status
Coverage
Quality Score

Documentation

The full documentation of the bundle can be found here

Installation

Follow 5 quick steps to get ready to translate.

Step 1: Download the Bundle

FilterManager bundle is installed using Composer

# You can require any version you need, check the latest stable to make sure you are using the newest version.
$ composer require ongr/translations-bundle "~1.0"

Please note that filter manager requires Elasticsearch bundle, guide on
how to install and configure it can be found here.

Step 2: Enable the Bundle

Register bundles in app/AppKernel.php:

class AppKernel extends Kernel
{
    /**
     * {@inheritdoc}
     */
    public function registerBundles()
    {
        return [
            // ...
            new ONGR\ElasticsearchBundle\ONGRElasticsearchBundle(),
            new ONGR\FilterManagerBundle\ONGRFilterManagerBundle(),
            new FOS\JsRoutingBundle\FOSJsRoutingBundle(),
            new ONGR\TranslationsBundle\ONGRTranslationsBundle(),
        ];
    }

    // ...
}

Note: This bundle uses ONGRElasticsearchBundle to store translations.
Also ONGRFilterManagerBundle and FOSJsRoutingBundle bundles are used
to build user interface.

Step 3: Import Routing

Import API and UI routes:

# app/config/routing.yml
ongr_translation_ui:
    resource: "@ONGRTranslationsBundle/Resources/config/routing.yml"
    prefix:   /translations  # or any other prefix of your choice

fos_js_routing:
    resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"

Step 4: Configure Elasticsearch Bundle

This bundle relies on ONGR ElasticsearchBundle to store translations. You can
include this bundle in an existing managers mapping but we recommend to create
a separate index and manager for translations. More information on how to do
that can be found in official ElasticsearchBundle documentation.

Step 5: Configure the Bundle

This bundle requires minimal configuration to get started:

# app/config/config.yml
ongr_translations:
    managed_locales: ["en", "de", "lt"]
    repository: 'es.manager.translations.translation'

In the example above managed_locales defines locales we are working with and
repository defines repository service for Translation document.

Your repository ID may be different depending on what manager name you configured in
ongr_elasticsearch section. In this case manager named translations is used

Lastly, enable Symfony translations component if you do not have it enabled yet:

framework:
    # ...
    translator: { fallbacks: ["%locale%"] }

That's it about setup. Follow next chapter to learn how to work with translations.

For detailed configuration reference check dedicated documentation page.

Translate Your First Message!

Before starting to translate messages, you need to have some. Lets import
messages from this bundle. Here is a command ongr:translations:import
to do that:

$ bin/console ongr:translations:import ONGRTranslationsBundle

Install assets:

$ bin/console assets:install

Now open http://127.0.0.1:8000/translations in your browser. You should
see translations list.

License

This package is licensed under the MIT license. For the full copyright and
license information, please view the LICENSE file that was distributed
with this source code.

Copyright (c) 2014-2016 NFQ Technologies UAB

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
ongr_translations:

# Repository used for connecting with elasticsearch client.
repository:
translation: ~ # Required
history: ~ # Required

# Maximum amount of translations displayed in the list
list_size: 1000

# Locales to manage (e.g. "en", "de", "en_eur").
locales: []

# Bundles to scan for translations.
bundles: []