abenmada/sylius-translation-plugin 问题修复 & 功能扩展

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

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

abenmada/sylius-translation-plugin

最新稳定版本:v1.0.3

Composer 安装命令:

composer require abenmada/sylius-translation-plugin

包简介

The plugin enhances the Lexik translation bundle by incorporating a channel-based translation feature and adapting the visual appearance to the back-office theme.

README 文档

README

The plugin enhances the Lexik translation bundle by incorporating a channel-based translation feature and adapting the visual appearance to the back-office theme.

Details

The displayed locales depend on your channel's configuration. In this example, we have selected French and English.

presentation photo

That's why only these two languages are displayed for this channel.

presentation photo

You also have a preview page to visualize the number of missing translations for each locale.

presentation photo

Important

  • The priority of the content to display is as follows: first, the channel-specific translation, then, if not provided, the global translation stored in your database, and finally, if none are available, the translation in your translation file.
  • You can manage all translations for your channels on a single page. When you switch between channels, the locales defined for this channel will be displayed.

Installation

⚠️ Make sure you don't have ONLY_FULL_GROUP_BY enabled in your MySQL mode, otherwise remove it! To check the mode, execute the following SQL query: SELECT @@sql_mode

Require plugin with composer :

composer require abenmada/sylius-translation-plugin

Change your config/bundles.php file to add the line for the plugin :

<?php

return [
    //..
    Lexik\Bundle\TranslationBundle\LexikTranslationBundle::class => ['all' => true],
    Abenmada\TranslationPlugin\TranslationPlugin::class => ['all' => true],
]

Then create the config file in config/packages/abenmada_translation_plugin.yaml :

imports:
    - { resource: "@TranslationPlugin/Resources/config/services.yaml" }

Then import the routes in config/routes/abenmada_translation_plugin.yaml :

abenmada_translation_plugin_routing:
    resource: "@TranslationPlugin/Resources/config/routes.yaml"
    prefix: /%sylius_admin.path_name%/translations

Update the entity src/Entity/Channel/Channel.php :

<?php

declare(strict_types=1);

namespace App\Entity\Channel;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Abenmada\TranslationPlugin\Model\Channel\ChannelTrait as AbenmadaTranslationChannelTrait;
use Sylius\Component\Core\Model\Channel as BaseChannel;

/**
 * @ORM\Entity
 * @ORM\Table(name="sylius_channel")
 */
class Channel extends BaseChannel
{
    use AbenmadaTranslationChannelTrait;

    public function __construct()
    {
        $this->channelTranslations = new ArrayCollection();
        parent::__construct();
    }
}

Run the migration :

bin/console doctrine:migration:migrate

Install the assets :

bin/console assets:install --ansi

import translations files content into your database :

bin/console lexik:translations:import

Managing locales

  • The default supported locales are: English (en), French (fr), Arabic (ar), German (de), Spanish (es), Polish (pl), Portuguese (pt), and Italian (it).
  • You can adjust your language settings through the provided configuration options :
lexik_translation:
    fallback_locale: [ '%locale%' ]                     # default locale(s) to use
    managed_locales: [ en, fr, ar, de, es, pl, pt, it ] # locale(s) that the bundle has to manage

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-05-12

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固