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.
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 namedtranslations
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.