PHPackages                             2amigos/yii-ei18n - 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. 2amigos/yii-ei18n

AbandonedArchivedYii-module[Localization &amp; i18n](/categories/localization)

2amigos/yii-ei18n
=================

Ei18n is a translation module to allow Yii'ers to easily manage missing translations on their application pages.

247713JavaScript

Since Mar 28Pushed 13y ago6 watchersCompare

[ Source](https://github.com/2amigos/ei18n)[ Packagist](https://packagist.org/packages/2amigos/yii-ei18n)[ RSS](/packages/2amigos-yii-ei18n/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

========================= Ei18n Module 0.1 Manual
=================================================

[](#ei18n-module-01-manual)

Ei18n is a translation module to allow Yii'ers to easily manage missing translations on their application pages. It is heavily inspired by `yii.translate `\_ developed by Gustavo Salomé Silva `gusnips `\_.

The module also allows the edition of translations specified by categories. Its utility widget WTranslate handles that very smoothly.

The frontend is all AJAX based. I thought that would be better to leave to developers the creation of a backend in order to edit translations on a regular basis.

Plus, the Ei18n component has a couple of helper functions to the language settings automation. Check the Set CAction class to be included on the controller that will handle language settings.

======== Requires
=================

[](#requires)

```
* jQuery v1.7 or higher (tested with jQuery v1.7).
* `fancybox 2.0.5 `_
* `jwysiwyg 0.97.2 `_
* jbar Jquery plugin -**Modified version**
* Yii 1.9

```

=========== Tested with
=======================

[](#tested-with)

```
* Chrome 17.0.963.56 on Macosx Lion
* Safari Version 5.1.3 (7534.53.10) on Macosx Lion
* Firefox 8.0.1 Macosx Lion
* Firefox 9.0.1 Macosx Lion

```

=========== Quick Start
=======================

[](#quick-start)

On your main.php config file do the following::

```
/* import the module */
    'import'=>array(
    /* ... */
        'application.modules.translate.TranslateModule'
    /* ... */
/* setup your default language */
'language'=> 'en',
/* setup message translation method */
    'components'=>array(
        'messages' => array(
            'class' => 'CDbMessageSource',
            'onMissingTranslation' => array('Ei18n', 'missingTranslation'),
            'sourceMessageTable' => 'tbl_source_message',
            'translatedMessageTable' => 'tbl_message'
        ),
/* setup global translate application component */
        'translate' => array(
            'class' => 'translate.components.Ei18n',
            'createTranslationTables' => true,
            'connectionID' => 'db',
            'languages' => array(
                'en' => 'English',
                'es' => 'Español',
                'it' => 'Italiano'
                )
            ),
    ),
/* setup the module */
    'modules' => array(
        'translate'
    ),
/* preload the global translate application component */
    'preload'=> array(
        'translate'
    )
    /* ... */

```

Displaying the editor
---------------------

[](#displaying-the-editor)

Once the module and the translation component have been set. You can just use any of the following helper functions::

```
Yii::app()->translate->renderMissingTranslationsEditor();
/* or */
/* Yii::app()->translate->renderTranslationsEditor(array('index','menu')); */

```

The first method, and due to the view rendering nature of Yii, I highly recommend the display of those functions at the bottom of your `main` or `base` layout, as it will collect all missing ones throughout the rendering process.

[![2amigOS!](https://camo.githubusercontent.com/9fd8f1de41dc23003bb2a54034cb6658dde5be97092e195a62d629d0d7fa7f6c/687474703a2f2f7777772e67726176617461722e636f6d2f6176617461722f35353336333339346437323934356666376564333132353536656330343165302e706e67)](http://www.2amigos.us)
*web development has never been so fun*[www.2amigos.us](http://www.2amigos.us)

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity41

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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/566016?v=4)[Antonio Ramirez](/maintainers/tonydspaniard)[@tonydspaniard](https://github.com/tonydspaniard)

---

Top Contributors

[![amigo-tabin](https://avatars.githubusercontent.com/u/3017365?v=4)](https://github.com/amigo-tabin "amigo-tabin (1 commits)")

### Embed Badge

![Health badge](/badges/2amigos-yii-ei18n/health.svg)

```
[![Health](https://phpackages.com/badges/2amigos-yii-ei18n/health.svg)](https://phpackages.com/packages/2amigos-yii-ei18n)
```

###  Alternatives

[smmoosavi/php-gettext

Wrapper for php-gettext by danilo segan. This library provides PHP functions to read MO files even when gettext is not compiled in or when appropriate locale is not present on the system.

1926.6k1](/packages/smmoosavi-php-gettext)[laradevs/spanish

labels translated to spanish

166.7k](/packages/laradevs-spanish)

PHPackages © 2026

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