added caching for messages and source messages
modification of Zelenin Yii2 i18n
Yii2 i18n (internalization) module makes the translation of your application so simple
The preferred way to install this extension is through Composer.
Either run
php composer.phar require dvixi/yii2-i18n "dev-master"
or add
"dvixiyii2-i18n": "dev-master"
to the require section of your composer.json
Configure I18N component in common config:
'i18n' => [
'class' => dvixi\yii2\I18n\components\I18N::className(),
'languages' => ['ru-RU', 'de-DE', 'it-IT']
],
Configure I18N component in backend config:
'modules' => [
'i18n' => dvixi\yii2\I18n\Module::className()
],
Run:
php yii migrate --migrationPath=@Zelenin/yii/modules/I18n/migrations
Go to http://backend.yourdomain.com/translations
for translating your messages
If you have an old project with PHP-based i18n you may migrate to DbSource via console.
Run:
php yii i18n/import @common/messages
where @common/messages
is path for app translations
Run:
php yii i18n/export @dvixi/yii2/I18n/messages dvixi/yii2/i18n
where @dvixi/yii2/I18n/messages
is path for app translations and zelenin/modules/i18n
is translations category in DB
Import translations from PHP files
php yii i18n/import @yii/messages
Configure I18N component:
'i18n' => [
'class'=> dvixi\yii2\I18n\components\I18N::className(),
'languages' => ['ru-RU', 'de-DE', 'it-IT'],
'translations' => [
'yii' => [
'class' => yii\i18n\DbMessageSource::className()
]
]
],
Component uses yii\i18n\MissingTranslationEvent for auto-add of missing translations to database
See Yii2 i18n guide
Aleksandr Zelenin, e-mail: aleksandr@zelenin.me