PHPackages                             domis86/translator-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. domis86/translator-bundle

ActiveSymfony-bundle[Localization &amp; i18n](/categories/localization)

domis86/translator-bundle
=========================

Easily edit Symfony2 translations while browsing your site

1.0.1(7y ago)63.3k1[2 PRs](https://github.com/domis86/TranslatorBundle/pulls)WTFPLPHPPHP &gt;=5.3.3

Since Dec 3Pushed 7y ago1 watchersCompare

[ Source](https://github.com/domis86/TranslatorBundle)[ Packagist](https://packagist.org/packages/domis86/translator-bundle)[ Docs](http://github.com/domis86/TranslatorBundle)[ RSS](/packages/domis86-translator-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (5)Versions (7)Used By (0)

domis86/TranslatorBundle
========================

[](#domis86translatorbundle)

[![SensioLabsInsight](https://camo.githubusercontent.com/822016e6d6131335b7f62035c0daef0c1a2f3b117c4298325a5faf97fa6d0999/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f31623564323738662d366664352d346363302d613831622d3632323362616436336663342f736d616c6c2e706e67)](https://insight.sensiolabs.com/projects/1b5d278f-6fd5-4cc0-a81b-6223bad63fc4)

What is it ?
------------

[](#what-is-it-)

Symfony2 bundle which helps in translation.

A Symfony2 bundle which helps in editing of translations without need for editing the translations files. Edit can be performed via symfony WebDebugToolbar (translations from current request) or backend admin interface (all translations). Translations are stored in db and retrieved in a efficient way (+cached).

The Symfony2 WebDebugToolbar shows number of translations used in current request: [![Domis86Translator in WebDebugToolbar](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/domis86translator_in_web_debug_toolbar.png)](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/domis86translator_in_web_debug_toolbar.png)

If you click on it a Edit Dialog will appear where you can edit translations used in current request: [![Domis86Translator Edit Dialog](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/domis86translator_edit_dialog.png)](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/domis86translator_edit_dialog.png)

[![Tranlation missing](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/translation_missing.png)](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/translation_missing.png) - indicates that translation for this language is missing - click and add it!

[![Tranlation missing](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/translation_from_file.png)](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/translation_from_file.png) - Black text is current translation stored in db. Blue text means that it is translation loaded from file - via default Symfony2 Translator service (messages.en.yml etc). It will be used if there is no translation in DB.

In this example `hello` is translated to `Hallo` when language is [![german](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/flags/de.png)](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/flags/de.png)german, but when language is [![french](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/flags/fr.png)](https://github.com/domis86/TranslatorBundle/raw/master/Resources/doc/flags/fr.png)french then it is translated to `Bonjour` (which resides somewhere in messages.fr.yml). Hit `( Click to edit )` above `Bonjour` to change it.

You can also browse `[your_domain.com]/app_dev.php/domis86translator/backend` to edit all translations used in your application.

Features
--------

[](#features)

- edit/add translations without need of messing with translations files
- integration with Symfony2 WebDebugToolbar (dev env)
    - info how many translated/used messages was in request
- robust Edit Dialog (js) activated by clicking on WebDebugToolbar
    - search/sort your translations by name, domain name, content
    - just click on translation, edit it in place and save
    - click on `Help` button in Dialog for more info
- manage all translations from you application in Backend (same features as Edit Dialog)
- translations are stored in DB, and cached per Action

Installation
------------

[](#installation)

Add the `domis86/translator-bundle` package to your `require` section in the `composer.json` file:

```
    ...
    "require": {
        ...
        "domis86/translator-bundle": "dev-master"
    },
    ...
```

Add the Domis86TranslatorBundle to your AppKernel:

```
// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        // ...
        new Domis86\TranslatorBundle\Domis86TranslatorBundle(),
        // ...
    );
    ...
}
```

Enable this bundle and configure `managed_locales` in your `config.yml`:

```
# config.yml
domis86_translator:
    is_enabled: true
    managed_locales: [en, fr, de]
```

Enable Dialog for `dev` environment in your `config_dev.yml`:

```
# config_dev.yml
domis86_translator:
    is_web_debug_dialog_enabled: true
```

Add routes in your `routing_dev.yml`:

```
# routing_dev.yml
domis86_translator_routing:
    resource: "@Domis86TranslatorBundle/Resources/config/routing.yml"
    prefix:   /domis86translator
```

Update your database:

```
php app/console doctrine:schema:update --force
```

Install assets

```
php app/console assets:install
```

#### Optional config:

[](#optional-config)

If your web server's DocumentRoot points to some other dir than symfony's `/web` dir then you can change `domis86_translator.assets_base_path` accordingly (default is `/bundles/domis86translator/`). Assuming your app.php url is `http://localhost/uglydirectory/web/app.php` then you should do:

```
domis86_translator:
    managed_locales: [en, fr, de]
    assets_base_path: /uglydirectory/web/bundles/domis86translator/
```

Used libraries:
---------------

[](#used-libraries)

- [jQuery](http://jquery.com/)
- [jQuery-ui](http://jqueryui.com/)
- [DataTables](http://datatables.net/)
- [Jeditable](http://www.appelsiini.net/projects/jeditable)
- [yepnope.js](http://yepnopejs.com/)

[![Latest Stable Version](https://camo.githubusercontent.com/0e0820fb9ef2268af50736a5a9154e6a376df52e5838978ff809627bbd8a0e97/68747470733a2f2f706f7365722e707567782e6f72672f646f6d697338362f7472616e736c61746f722d62756e646c652f762f737461626c652e706e67)](https://packagist.org/packages/domis86/translator-bundle) [![Total Downloads](https://camo.githubusercontent.com/4092b0594cf9fe6cedc7a1645caa11f90081e4222cbd713048a75b544d9aa578/68747470733a2f2f706f7365722e707567782e6f72672f646f6d697338362f7472616e736c61746f722d62756e646c652f646f776e6c6f6164732e706e67)](https://packagist.org/packages/domis86/translator-bundle) [![Latest Unstable Version](https://camo.githubusercontent.com/e62fdab249119ab15c312eed7f750fb50b995f08734b86a83252121c550ee1c7/68747470733a2f2f706f7365722e707567782e6f72672f646f6d697338362f7472616e736c61746f722d62756e646c652f762f756e737461626c652e706e67)](https://packagist.org/packages/domis86/translator-bundle) [![License](https://camo.githubusercontent.com/f7b86860a57d9312a78ebcfa4d169bb4f4bf447ccd42cc1c3c6dc0126dbc9a39/68747470733a2f2f706f7365722e707567782e6f72672f646f6d697338362f7472616e736c61746f722d62756e646c652f6c6963656e73652e706e67)](https://packagist.org/packages/domis86/translator-bundle)

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 97.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~380 days

Total

5

Last Release

2655d ago

Major Versions

v0.3 → v1.02015-07-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/4fb8d5eb6bfc9cdff5cb4164e664b3e4b2e85f3d705282bad59746471305d44e?d=identicon)[domis86](/maintainers/domis86)

---

Top Contributors

[![domis86](https://avatars.githubusercontent.com/u/2327600?v=4)](https://github.com/domis86 "domis86 (41 commits)")[![chandon](https://avatars.githubusercontent.com/u/4522557?v=4)](https://github.com/chandon "chandon (1 commits)")

---

Tags

bundlei18ntranslationsuitranslator

### Embed Badge

![Health badge](/badges/domis86-translator-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/domis86-translator-bundle/health.svg)](https://phpackages.com/packages/domis86-translator-bundle)
```

###  Alternatives

[lexik/translation-bundle

This bundle allows to import translation files content into the database and provide a GUI to edit translations.

4362.7M19](/packages/lexik-translation-bundle)[jms/translation-bundle

Puts the Symfony Translation Component on steroids

42510.8M63](/packages/jms-translation-bundle)[om/potrans

Command line tool for translate Gettext with Google Translator API or DeepL API

10515.0k4](/packages/om-potrans)[creative/symfony-db-i18n-bundle

Allow store i18n-messages in database

1712.6k](/packages/creative-symfony-db-i18n-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
