PHPackages                             liip/translation-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. liip/translation-bundle

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

liip/translation-bundle
=======================

provide various tools to ease translation management

0.1.0(10y ago)2610.6k11[23 issues](https://github.com/liip/LiipTranslationBundle/issues)[1 PRs](https://github.com/liip/LiipTranslationBundle/pulls)MITPHPPHP &gt;=5.3.9

Since Sep 26Pushed 8y ago54 watchersCompare

[ Source](https://github.com/liip/LiipTranslationBundle)[ Packagist](https://packagist.org/packages/liip/translation-bundle)[ RSS](/packages/liip-translation-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (5)Versions (14)Used By (0)

UNMAINTAINED
============

[](#unmaintained)

This bundle is no longer maintained. Feel free to fork it if needed.

LiipTranslationBundle
=====================

[](#liiptranslationbundle)

[![Build Status](https://camo.githubusercontent.com/7423facafba537acd0fda1475c23aaab7f14b919e72f14334028f81489d9fa9c/68747470733a2f2f7472617669732d63692e6f72672f6c6969702f4c6969705472616e736c6174696f6e42756e646c652e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/liip/LiipTranslationBundle)

This Bundle provides various tools to ease translations management of a Sf2 app. Here is a small [presentation](https://docs.google.com/presentation/d/1JK6vff6cVa92VxRIJ5ORzSUrmbtDPc5bPsFE35soEpw/edit?usp=sharing) of the bundle.

Introduction
------------

[](#introduction)

This bundle adds a new layer on top of existing translation mechanisms. This allows your customers to edit and override any translations directly from the website.

### Separation of concern

[](#separation-of-concern)

Using such a tool allows a clear separation between "key" and "value". Developers are responsible for defining new keys and removing old keys, while client/customer are responsible for translating the website.

### Key values on steroid

[](#key-values-on-steroid)

The current basic key-value system could be better. We extend it and allow developers to complete keys with metadata (like it's possible with XLiFF).

Extend your keys with information like maxbytes, comment, description, urls, screenshot, etc... Anything that could help translators.

A "value" is the translation for a "key" in a given locale, it's also possible to complete it with metadata (comments, update date, validity, etc...)

### Storage layer

[](#storage-layer)

The intermediate storage is currently available for:

- Propel (database)
- YAML (file or in Git)

but adding a new persistence implementation is very easy (you just have to implement a small interface)

### Symfony compatibility

[](#symfony-compatibility)

This bundle works on any Symfony versions 2.3+. Unit and functional tests have been written to ensure this compatibility.

Features
--------

[](#features)

### Translation interface in the backend

[](#translation-interface-in-the-backend)

- Edit through a contextual popup
- Fast inline editing
- Possibility to view various translated column at the same time (en, fr, pt, etc...)
- Filter by locale, domain, date
- Filter for untranslated key
- Search by key name or translation value
- Display help messages from the developers

### Import/Export

[](#importexport)

Useful to provide files to an external agency, or to transfer translations from a staging environment to production

- Export translation to a YAML file
- Export based on the current list filter
- Export/import multi domain/language with a zip file
- Review change interface to handle collision at import time

### New translation keys insertion

[](#new-translation-keys-insertion)

- Developers can provide context information to a translation keys (maxsize, description, comment, url, etc..)
- Symfony command for developers to insert new complex keys into Xliff

### Security

[](#security)

- Rights management (restricted to given locale or given domain)

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

[](#installation)

1. Via composer

    ```
     composer require liip/translation-bundle master-dev

    ```

Configuration
-------------

[](#configuration)

Include the bundle in your `AppKernel.php`:

```
public function registerBundles()
{
    $bundles = array(
        // ...
        new Liip\TranslationBundle\LiipTranslationBundle(),
        // ...
    );
    // ...
}

```

In your `config.yml` add the given Bundle specific configuration, for example:

```
liip_translation:
    locale_list: [en_JP, en_US, en, fr_CH, fr]
    security:
        by_domain: false
        by_locale: true
    persistence:
        class: Liip\TranslationBundle\Persistence\YamlFilePersistence
        options:
            folder: "%kernel.root_dir%/data/translations"
    interface:
        default_filters:
          domain: ['messages']
          languages: ['en', 'fr']

```

Also load the routes:

```
_liip_translation:
    resource: "@LiipTranslationBundle/Resources/config/routing.yml"
    prefix: /translation

```

Alternatively you can load the translation and import interface routes separately:

```
_liip_translation_interface:
    resource: "@LiipTranslationBundle/Resources/config/routing_translation_interface.yml"

_liip_translation_import_interface:
    resource: "@LiipTranslationBundle/Resources/config/routing_import_interface.yml"

```

### Security

[](#security-1)

Access to translation management can be restricted by domains or by locales. By default, those restrictions are disabled, you can turn them on in the config, with:

```
liip_translation:
    ...
    security:
        by_domain: false
        by_locale: true

```

You can activate one or both restrictions together. Once this have been activated, you have to attribute associated roles to your users. The existing roles are:

```
ROLE_TRANSLATOR_ADMIN
    ROLE_TRANSLATOR_ALL_DOMAINS
        ROLE_TRANSLATOR_DOMAIN_XXX
    ROLE_TRANSLATOR_ALL_LOCALES
        ROLE_TRANSLATOR_LOCALE_XXX

```

!! Warning, if you use security by domain, you have to explicitly list the domains. Example:

```
    security:
        by_domain: true
        domain_list: [messages, validators, forms]

```

Contributing
------------

[](#contributing)

Pull requests are welcome. Please see our [CONTRIBUTING](https://github.com/liip/LiipTranslationBundle/blob/master/CONTRIBUTING.md) guide.

This bundle is fully tested with PHPUnit, the tests suite can be run using the following commands :

```
      git clone git@github.com:liip/LiipTranslationBundle.git && cd LiipTranslationBundle
      composer install --dev
      phpunit

```

Thanks to [everyone who has contributed](https://github.com/liip/LiipTranslationBundle/graphs/contributors) already.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance2

Infrequent updates — may be unmaintained

Popularity35

Limited adoption so far

Community27

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 55.7% 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 ~57 days

Recently: every ~148 days

Total

12

Last Release

3991d ago

PHP version history (2 changes)0.0.1PHP &gt;=5.3.3

0.1.0PHP &gt;=5.3.9

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/76576?v=4)[David Buchmann](/maintainers/dbu)[@dbu](https://github.com/dbu)

![](https://avatars.githubusercontent.com/u/20873?v=4)[Luke Smith](/maintainers/lsmith)[@lsmith](https://github.com/lsmith)

![](https://www.gravatar.com/avatar/f081ca8cb8aed6700cf653d466e81ad7fe2110c3826e3200d13af1a4df442d8b?d=identicon)[jeanmonod](/maintainers/jeanmonod)

---

Top Contributors

[![jeanmonod](https://avatars.githubusercontent.com/u/114489?v=4)](https://github.com/jeanmonod "jeanmonod (151 commits)")[![krtek4](https://avatars.githubusercontent.com/u/963772?v=4)](https://github.com/krtek4 "krtek4 (72 commits)")[![lsmith77](https://avatars.githubusercontent.com/u/300279?v=4)](https://github.com/lsmith77 "lsmith77 (26 commits)")[![dbu](https://avatars.githubusercontent.com/u/76576?v=4)](https://github.com/dbu "dbu (14 commits)")[![thormeier](https://avatars.githubusercontent.com/u/2109047?v=4)](https://github.com/thormeier "thormeier (3 commits)")[![aitboudad](https://avatars.githubusercontent.com/u/1753742?v=4)](https://github.com/aitboudad "aitboudad (2 commits)")[![kix](https://avatars.githubusercontent.com/u/345754?v=4)](https://github.com/kix "kix (1 commits)")[![althaus](https://avatars.githubusercontent.com/u/105975?v=4)](https://github.com/althaus "althaus (1 commits)")[![acrobat](https://avatars.githubusercontent.com/u/1374857?v=4)](https://github.com/acrobat "acrobat (1 commits)")

---

Tags

bundlephpsymfonysymfony-bundletranslation-managementi18ntranslation

### Embed Badge

![Health badge](/badges/liip-translation-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/liip-translation-bundle/health.svg)](https://phpackages.com/packages/liip-translation-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)[gettext/gettext

PHP gettext manager

70130.2M102](/packages/gettext-gettext)[jms/translation-bundle

Puts the Symfony Translation Component on steroids

42510.8M63](/packages/jms-translation-bundle)[leaseweb/gettext-translation-bundle

Easy to use and native (faster) gettext translation support

2460.6k](/packages/leaseweb-gettext-translation-bundle)[instaclick/translation-editor-bundle

Web editor UI to manage Symfony2 translations (Symfony2 bundle)

2019.5k](/packages/instaclick-translation-editor-bundle)

PHPackages © 2026

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