yii1tech / i18n-fallback
提供对Yii1翻译回退到其他消息源的支持
Requires
- php: >=7.1
- yiisoft/yii: ~1.1.0
Requires (Dev)
- phpunit/phpunit: ^6.0 || ^7.0 || ^8.0 || ^9.3 || ^10.0.7
This package is auto-updated.
Last update: 2024-09-20 13:27:37 UTC
README
Yii1的翻译回退扩展
此扩展提供对Yii1翻译回退到其他消息源的支持。
有关许可信息,请参阅LICENSE-文件。
安装
安装此扩展的首选方式是通过composer。
运行以下命令:
php composer.phar require --prefer-dist yii1tech/i18n-fallback
或
"yii1tech/i18n-fallback": "*"
将以下内容添加到您的composer.json文件中的"require"部分。
使用方法
此扩展提供对Yii1翻译回退到其他消息源的支持。例如:您可以设置一个管理面板来编辑数据库中存储的翻译。同时,您可能还想通过存储在VCS下的本地文件设置默认翻译。应用配置示例
<?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, ], ], ], ], // ... ], // ... ];
如果未设置\yii1tech\i18n\fallback\MessageSourceFallbackBehavior::$fallbackMessageSource
,则行为将使用其所有者。这允许设置回退到某些默认语言,以供其他语言中缺少的翻译使用。回退语言由\yii1tech\i18n\fallback\MessageSourceFallbackBehavior::$fallbackLanguage
控制。例如
<?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.) ], ], ], // ... ], // ... ];
注意:您可以设置
\yii1tech\i18n\fallback\MessageSourceFallbackBehavior::$fallbackLanguage
与特定的消息源。例如:您可能只支持默认语言('en_us')的本地翻译文件。如果省略了\yii1tech\i18n\fallback\MessageSourceFallbackBehavior::$fallbackMessageSource
,则行为所有者实例将用作回退实例。
您还可以将yii1tech\i18n\fallback\MessageSourceFallbackBehavior
附加到回退消息源,创建回退链。例如
<?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.) ], ], ], ], ], ], // ... ], // ... ];