it-blaster/translation-bundle 问题修复 & 功能扩展

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

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

it-blaster/translation-bundle

最新稳定版本:1.0.4

Composer 安装命令:

composer require it-blaster/translation-bundle

包简介

Symfony2 bundle to work with the language versions of the website. Includes advanced Propel behavior sluggable.

README 文档

README

Build Status Scrutinizer Code Quality

Вспомогательный бандл для работы с языковыми версиями на сайте

Installation

Добавьте ItBlasterTranslationBundle в composer.json:

{
    "require": {
        "it-blaster/translation-bundle": "dev-master"
	},
}

Теперь запустите композер, чтобы скачать бандл командой:

$ php composer.phar update it-blaster/translation-bundle

Композер установит бандл в папку проекта vendor/it-blaster/translation-bundle.

Далее подключите бандл в ядре AppKernel.php:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new ItBlaster\TranslationBundle\ItBlasterTranslationBundle(),
    );
}

В app/config/config.yml переопределяеем путь до класса propel-бихейвора sluggable

 propel:
     ...
     behaviors:
         ...
         sluggable: ItBlaster\TranslationBundle\Behavior\ExtendedSluggableBehavior
         it_blaster_translation_model: ItBlaster\TranslationBundle\Behavior\TranslationModelBehavior

В файле schema.yml у таблицы прописываем бихейвор с указанием параметра primary_string, на основе которой будет формироваться slug. Например:

    <behavior name="sluggable">
        <parameter name="primary_string" value="title" />
    </behavior>

Если вам создавать slug у таблицы не нужно, а нужно только выводить поля языковых версий в правильном порядке, то достаточно прописать бихейвор it_blaster_i18n:

        <behavior name="it_blaster_i18n">
            <parameter name="primary_string" value="question" />
        </behavior>

И прописать в config.yml его подключение:

 propel:
     ...
     behaviors:
         ...
         it_blaster_i18n: ItBlaster\TranslationBundle\Behavior\ExtendedI18nBehavior

Бихейвор ExtendedSluggableBehavior уже включает в себя методы из бихейвора ExtendedI18nBehavior, поэтому вместе их прописывать в схеме не нужно.

Если вы используете языковый версии (i18n), необходимо в файле config.yml указать параметры it_blaster_translation.locales и it_blaster_translation.slug_locales.

it_blaster_translation:
    locales: ['ru', 'en','uk','cs']
    slug_locales: ['en','ru']

Параметр it_blaster_translation.locales отвечает за порядок вывода полей в форме редактирвоания в CMS. Параметр it_blaster_translation.slug_locales отвечает за порядок языков, на основе которых будет формироваться slug. Если значение по первому языку не заполнено, система будет сформировать slug на основе значения следующей языковой версии.

Таблица переводов

Необходимо в папке проекта src создать файлы переводов messages.locale.php и validators.locale.php с содержимым:

<?php
return \ItBlaster\TranslationBundle\Model\TranslationPeer::getListForLocale("LOCALE");

Например, для английского языка нужно создать файлы:

  1. src\App\MainBundle\Resources\translations\messages.en.php
  2. src\App\MainBundle\Resources\translations\validators.en.php

Со следующим содержимым:

<?php
return \ItBlaster\TranslationBundle\Model\TranslationPeer::getListForLocale("en");

Для того, чтобы наполнить таблицу переводов необходимо запустить индексирующий таск в консоле:

'php app/console translation:extract en --dir=./src/ --output-dir=./src/App/MainBundle/Resources/translations/ --output-format="php"'

Если вам нужны переводы только файлов шаблонов (twig), то выключите из выборки php-файлы

'php app/console translation:extract en --dir=./src/ --output-dir=./src/App/MainBundle/Resources/translations/ --exclude-name="*.php" --output-format="php"'

Особенности подключения

  1. Если в проекте не используется JMSTranslationBundle, то необходимо добавить его в composer.json http://jmsyst.com/bundles/JMSTranslationBundle/master/installation
  2. В каких-то случаях не переопределяется сервис jms_translation.dumper.php_dumper.class, если этого не происходит необходимо в app/config.yml прописать
parameters:
    ...
    jms_translation.dumper.php_dumper.class: ItBlaster\TranslationBundle\Translation\Dumper\PhpDumper
    ...

Credits

It-Blaster it-blaster@yandex.ru

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 4
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-02-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固