yii1tech/i18n-fallback 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yii1tech/i18n-fallback

最新稳定版本:1.0.0

Composer 安装命令:

composer require yii1tech/i18n-fallback

包简介

Provides support for Yii1 translation fallback to another message source

README 文档

README

Translation Fallback Extension for Yii1


This extension provides support for Yii1 translation fallback to another message source.

For license information check the LICENSE-file.

Latest Stable Version Total Downloads Build Status

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist yii1tech/i18n-fallback

or add

"yii1tech/i18n-fallback": "*"

to the "require" section of your composer.json.

Usage

This extension provides support for Yii1 translation fallback to another message source. For example: you may setup an administration panel to edit the translation stored in the database. At the same time you may want to setup default translations via local files stored under VCS. Application configuration example:

<?php

return [
    'components' => [
        'messages' => [
            'class' => CDbMessageSource::class, // use database source, controlled via admin panel
            'forceTranslation' => true,
            'behaviors' => [
                'fallbackBehavior' => [
                    'class' => yii1tech\i18n\fallback\MessageSourceFallbackBehavior::class,
                    'fallbackMessageSource' => [
                        'class' => CPhpMessageSource::class, // fallback to local translation files, if message is missing in the database
                        'forceTranslation' => true,
                    ],
                ],
            ],
        ],
        // ...
    ],
    // ...
];

In case \yii1tech\i18n\fallback\MessageSourceFallbackBehavior::$fallbackMessageSource is not set, behavior will use its owner for it. This allows to set up a fallback to a some default language for the translations, which are missing at other language. The fallback language is controlled via \yii1tech\i18n\fallback\MessageSourceFallbackBehavior::$fallbackLanguage. For example:

<?php

return [
    'components' => [
        'messages' => [
            'class' => CPhpMessageSource::class, // setup single message source
            'forceTranslation' => true,
            'behaviors' => [
                'fallbackBehavior' => [
                    'class' => yii1tech\i18n\fallback\MessageSourceFallbackBehavior::class,
                    'fallbackLanguage' => 'en_us', // fallback to 'en_us', if translation is missing in some language (like 'es', 'ru', etc.)
                ],
            ],
        ],
        // ...
    ],
    // ...
];

Note: you can setup \yii1tech\i18n\fallback\MessageSourceFallbackBehavior::$fallbackLanguage with a particular message source. For example: you may support local translation files for the default ('en_us') language only. If \yii1tech\i18n\fallback\MessageSourceFallbackBehavior::$fallbackMessageSource is omitted - behavior owner instance will be used as a fallback one.

You may attach yii1tech\i18n\fallback\MessageSourceFallbackBehavior to the fallback message source as well, creating a fallback chain. For example:

<?php

return [
    'components' => [
        'messages' => [
            'class' => CDbMessageSource::class, // use database source, controlled via admin panel
            'forceTranslation' => true,
            'behaviors' => [
                'fallbackBehavior' => [
                    'class' => yii1tech\i18n\fallback\MessageSourceFallbackBehavior::class,
                    'fallbackMessageSource' => [
                        'class' => CPhpMessageSource::class, // fallback to local translation files, if message is missing in the database
                        'forceTranslation' => true,
                        'behaviors' => [
                            'fallbackBehavior' => [
                                'class' => yii1tech\i18n\fallback\MessageSourceFallbackBehavior::class,
                                'fallbackLanguage' => 'en_us', // fallback to 'en_us', if translation is missing in some language (like 'es', 'ru', etc.)
                            ],
                        ],
                    ],
                ],
            ],
        ],
        // ...
    ],
    // ...
];

统计信息

  • 总下载量: 1.35k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2023-06-19