定制 abcms/yii2-multilanguage 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

abcms/yii2-multilanguage

Composer 安装命令:

composer require abcms/yii2-multilanguage

包简介

README 文档

README

Features:

  • Add a language bar widget to your website
  • Translate models
  • Manage languages from database or configuration
  • Message translation CRUD

Install:

composer require abcms/yii2-library:dev-master
composer require abcms/yii2-multilanguage:dev-master

Enable multi-language support in your website:

1. Add language and sourceLanguage attributes to your config array.

$config = [
    ......
    'language' => 'en',
    'sourceLanguage' => 'en',
    ......
];

2. Add multilanguage component

[
    'components' => [
        ......
        'multilanguage' => [
            'class' => 'abcms\multilanguage\Multilanguage',
            'languages' => [
                'en' => 'English',
                'ar' => 'Arabic',
                'fr' => 'French',
            ],
        ],
    ],
]

Add the component to the bootstrap array to allow it to read and set the language from cookies and URL:

'bootstrap' => ['log', 'multilanguage'],

3. Add custom URL manager:

This URL manager class will automatically add the language to each URL.

'urlManager' => [
      'class' => abcms\multilanguage\UrlManager::className(),
      'enablePrettyUrl' => true,
      'showScriptName' => false,
      'rules' => [
          '<lang:([a-z]{2,3}(-[A-Z]{2})?)>/<controller>/<action>/' => '<controller>/<action>',
      ],
],

4. Add a language switcher to the layout.

Using the language bar widget:

<?= abcms\multilanguage\widgets\LanguageBar::widget() ?>

or manually:

<a class="<?= (Yii::$app->language == 'en') ? 'active' : ''; ?>" href="<?= Url::current(['lang' => 'en']) ?>">En</a>

Enable translation for your models and CRUDs:

1. Migration:

1- Add the migration namespaces in the console.php configuration:

'controllerMap' => [
    'migrate' => [
        'class' => 'yii\console\controllers\MigrateController',
        'migrationNamespaces' => [
            'abcms\library\migrations',
            'abcms\multilanguage\migrations',
        ],
    ],
],

2- Run ./yii migrate

You can use abcms/yii2-generators to generate a custom model and CRUD or continue with the manual steps below.

2. Add model behavior:

Add the multi-language behavior and specify which attributes can be translated and the type for each field. If the field type is not specified, text input will be used by default.

[
    'class' => \abcms\multilanguage\behaviors\ModelBehavior::className(),
    'attributes' => [
        'title',
        'description:text-area',
    ],
],

3. Add translation form in the admin panel:

Add in _form.php:

<?= \abcms\multilanguage\widgets\TranslationForm::widget(['model' => $model, 'form' => $form]) ?>

4. Add translation detail view in the admin panel:

Add in view.php:

<?=
\abcms\multilanguage\widgets\TranslationView::widget([
    'model' => $model,
])
?>

5. Enable automatic translation saving in the controller

Add in Controller create and update actions:

$model->automaticTranslationSaving = true;

How to get translated content?

Get a single model translation for the current language:

$translatedModel = $model->translate();

Get multiple models translation for the current language:

$translatedModels = Yii::$app->multilanguage->translateMultiple($models);

abcms/yii2-multilanguage 适用场景与选型建议

abcms/yii2-multilanguage 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 813 次下载、GitHub Stars 达 4, 最近一次更新时间为 2016 年 10 月 04 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 abcms/yii2-multilanguage 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 abcms/yii2-multilanguage 我们能提供哪些服务?
定制开发 / 二次开发

基于 abcms/yii2-multilanguage 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 813
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 3
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2016-10-04