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)83.3k1[2 issues](https://github.com/domis86/TranslatorBundle/issues)[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 3w 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

31

—

LowBetter than 66% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity23

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

2701d 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

[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1155.2k](/packages/rcsofttech-audit-trail-bundle)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.5M374](/packages/easycorp-easyadmin-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M196](/packages/sulu-sulu)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1615.6k12](/packages/2lenet-crudit-bundle)[ahmed-bhs/doctrine-doctor

Runtime analysis tool for Doctrine ORM integrated into Symfony Web Profiler. Unlike static linters, it analyzes actual query execution at runtime to detect performance bottlenecks, security vulnerabilities, and best practice violations during development with real execution context and data.

939.0k](/packages/ahmed-bhs-doctrine-doctor)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9317.2k55](/packages/open-dxp-opendxp)

PHPackages © 2026

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