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

ActiveLibrary[Localization &amp; i18n](/categories/localization)

devture/silex-translation-bundle
================================

Silex bundle that allows .json files to be translated between multiple languages.

3.0(9y ago)0304BSDPHP

Since Mar 9Pushed 9y ago1 watchersCompare

[ Source](https://github.com/devture/silex-translation-bundle)[ Packagist](https://packagist.org/packages/devture/silex-translation-bundle)[ RSS](/packages/devture-silex-translation-bundle/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (3)Versions (16)Used By (0)

Description
===========

[](#description)

Finds all `{sourceLanguage}.json` files (example: `en.json`) in a given base directory (`base_path`) and allows these files to be translated to all given languages (`locales`).

A `{targetLanguage}.json` file is generated and saved next to `{sourceLanguage}.json` for each locale, whenever the translations for it are saved.

A `{targetLanguage}.json.hash` file is also saved in the same directory. It contains "hints" telling the translation system which source translation string a given translation is derived from. This is so that a translation can be considered outdated if the source translation string changes. At this moment, such outdated translations are considered new and untranslated.

Installation
============

[](#installation)

Permissions
-----------

[](#permissions)

Since the translation system needs to save translation files in the project, we need to grant file-writing privileges to the web server user.

Example:

```
$ find /srv/http/my-project/src -type d -name translations | xargs chown :http
$ find /srv/http/my-project/src -type d -name translations | xargs chmod g+w

```

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

[](#configuration)

TranslationBundle config:

```
"TranslationBundle": {
	"source_language_locale_key": "en",
	"base_path": "%app_base_path%",
	"locales": "%locales%"
}

```

TranslationBundle config example:

```
"TranslationBundle": {
	"source_language_locale_key": "en",
	"base_path": "/srv/http/my-project/src",
	"locales": {
		"en": {"key": "en", "name": "English"},
		"bg": {"key": "bg", "name": "Bulgarian"},
		"ja": {"key": "ja", "name": "Japanese"}
	}
}

```

Initialization
--------------

[](#initialization)

Only set-up during debug to protect the production environment:

```
if ($app['debug']) {
	$app->register(new \Devture\Bundle\TranslationBundle\ServicesProvider('devture_translation', $app['config']['TranslationBundle']));
	$app->mount('/admin/{locale}/translation/', $app['devture_translation.controllers_provider.management']);
	$app['devture_user.access_control']->requireRoleForRoutePrefix('devture_translation.', 'devture_translation');
}

```

The main route would be `devture_translation.manage` (assuming the `devture_translation` namespace was used, as done above).

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity71

Established project with proven stability

 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 ~52 days

Recently: every ~102 days

Total

15

Last Release

3391d ago

Major Versions

1.2.4 → 2.02017-03-17

2.0 → 3.02017-03-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/9daf523f8e47ddeb8af23183c06721c4e89111eb4eb3f9ce264242b373e9dd80?d=identicon)[spantaleev](/maintainers/spantaleev)

---

Top Contributors

[![spantaleev](https://avatars.githubusercontent.com/u/388669?v=4)](https://github.com/spantaleev "spantaleev (25 commits)")

---

Tags

bundleinternationalizationtranslationsilex

### Embed Badge

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

```
[![Health](https://phpackages.com/badges/devture-silex-translation-bundle/health.svg)](https://phpackages.com/packages/devture-silex-translation-bundle)
```

###  Alternatives

[lexik/translation-bundle

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

4382.8M19](/packages/lexik-translation-bundle)[tractorcow/silverstripe-fluent

Simple localisation for Silverstripe

90432.1k28](/packages/tractorcow-silverstripe-fluent)[inpsyde/multilingual-press

Simply THE multisite-based free open source plugin for your multilingual websites.

2414.0k1](/packages/inpsyde-multilingual-press)[skillshare/formatphp

Internationalize PHP apps. This library provides an API to format dates, numbers, and strings, including pluralization and handling translations.

8031.5k](/packages/skillshare-formatphp)[smousss/laravel-globalize

Make Laravel projects translatable in a matter of seconds!

2168.9k](/packages/smousss-laravel-globalize)[mediawiki/translate

The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software

438.0k](/packages/mediawiki-translate)

PHPackages © 2026

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