PHPackages                             creative/symfony-db-i18n-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. creative/symfony-db-i18n-bundle

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

creative/symfony-db-i18n-bundle
===============================

Allow store i18n-messages in database

v0.3.1(5y ago)1712.6k↑1025%11[1 issues](https://github.com/crtweb/symfony-db-i18n-bundle/issues)MITPHPPHP ^7.2||&gt;=8.0

Since Apr 22Pushed 5y agoCompare

[ Source](https://github.com/crtweb/symfony-db-i18n-bundle)[ Packagist](https://packagist.org/packages/creative/symfony-db-i18n-bundle)[ RSS](/packages/creative-symfony-db-i18n-bundle/feed)WikiDiscussions master Synced today

READMEChangelog (5)Dependencies (23)Versions (8)Used By (0)

Sometimes You have to give the visual interface of i18n message CRUD for a customer. To do this, You need to have storage, which is not under version control and allowed from a form.

I18n messages stored in database
================================

[](#i18n-messages-stored-in-database)

With this bundle i18n messages stored in a database instead of files, then, you can implement web-interface to manage it.

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

[](#installation)

```
composer require creative/symfony-db-i18n-bundle
```

Bundle **has not** (yet) a flex auto-configurator. Add

```
Creative\DbI18nBundle\DbI18nBundle::class => ['all' => true],
```

to you `config/bundles.php` file, and (optional) place the `db_i18n.yaml` with configuration (see below) file to your config directory.

Some rules:
-----------

[](#some-rules)

- you application service container must have aa array `locales` parameter with possible application locales. For example: ```
    # config/services.yaml
    parameters:
      locales: [ 'ru', 'en', 'de' ]
    ```
- implementation of `Symfony\Contracts\Translation\TranslatorInterface` must have a `getCatalogue` method (usually, it have) for import messages from translation files to database.
- You must define the default messages domain as `db_messages` in you views to use messages from database. For example: ```
    # templates/main.html.twig
    {% trans_default_domain 'db_messages' %}
    ```
- update you database schema after install this bundle — use `bin/console doctrine:schema:update` command or make migration for this.

So, now you can load messages from old translation files to the database. Command

```
bin/console creative:db-i18n:migrate translations/messages.en.yaml
```

will import all messages from `[project root]/translations/messages.en.yaml`. You can set absolute path instead, nevermind, but file name must be compatible with Symfony localization files agreement — `..`.

After (or instead of) that, make your forms/interfaces and add, change and so on with your messages.

Defaults
--------

[](#defaults)

Default config is

```
# src/Resources/config/db_i18n.yaml
db_i18n:
  entity: Creative\DbI18nBundle\Entity\Translation
  domain: db_messages
```

Copy this wherever you want and modify.

As you can see, the default messages domain is `db_messages`. If you want to override this and store default Symfony domain `messages` in a database, don't forget to remove (or rename) you `translations/messages..[yaml|csv|xlf]` file.

###  Health Score

34

—

LowBetter than 79% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~127 days

Recently: every ~159 days

Total

6

Last Release

1892d ago

PHP version history (2 changes)0.1PHP ^7.2

v0.3.1PHP ^7.2||&gt;=8.0

### Community

Maintainers

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

---

Top Contributors

[![andrew72ru](https://avatars.githubusercontent.com/u/567649?v=4)](https://github.com/andrew72ru "andrew72ru (9 commits)")

---

Tags

doctrine-ormi18nsymfonysymfony-bundlesymfony5translation-filessymfonyi18ntranslations

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/creative-symfony-db-i18n-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/creative-symfony-db-i18n-bundle/health.svg)](https://phpackages.com/packages/creative-symfony-db-i18n-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.5M605](/packages/sylius-sylius)[pimcore/pimcore

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

3.7k3.6M355](/packages/pimcore-pimcore)[sulu/sulu

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

1.3k1.3M128](/packages/sulu-sulu)[akeneo/pim-community-dev

Akeneo PIM, the future of catalog management is open!

1.0k610.8k78](/packages/akeneo-pim-community-dev)[contao/core-bundle

Contao Open Source CMS

1231.6M2.1k](/packages/contao-core-bundle)[ec-cube/ec-cube

EC-CUBE EC open platform.

78427.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

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