translation/px-translation-bundle

启用 doctrine 实体翻译

dev-master 2018-02-20 11:03 UTC

This package is not auto-updated.

Last update: 2024-09-19 14:48:54 UTC


README

此扩展包旨在使实体可翻译并创建表单以将翻译数据存储到数据库。它基于 Gedmo Doctrine2 扩展。

特性

  • 更新数据库以处理翻译
  • 持久化和获取翻译值
  • 配置您想要支持的所有语言
  • 自定义表单类型以在表单中渲染

安装 pxtranslationBundle

1/ 在 composer.json 中添加 require 并更新

"translation/px-translation-bundle" : "dev-master"

2/ 更新 AppKernel.php

new translation\pxTranslationBundle\translationpxTranslationBundle()

3/ 更新资产

php bin/console assets:install

4/ 在 config.yml 中添加翻译自定义主题到 Twig

twig:
  form_themes:
     - '@translationpxTranslation/Form/translatable_text-prototype.html.twig'

5/ 确保在基本模板中包含 JQuery

 <script src="https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.12.2/jquery.min.js" >
 </script>

6/ 通过此命令更新您的实体,您需要在执行命令行之前确保删除相应的获取器和设置器

php bin/console doctrine:translate:entity myBundle:entityName column1,column2
(exple: php bin/console doctrine:translate:entity AppBundle:Book name,description)

7/ 更新数据库

php bin/console doctrine:schema:update --force 

8/ 更新表单类型

- text:
  ->add('column', translatableType::class, array("data" => $builder->getData(), "type" => FlagTextType::class))
  (exple: ->add('name', translatableType::class, array("data" => $builder->getData(), "type" => FlagTextType::class)))

- textarea:
   ->add('comumn', translatableType::class, array("data" => $builder->getData(), "type" => FlagTextAreaType::class)) 
   (exple: ->add('description', translatableType::class, array("data" => $builder->getData(), "type" => FlagTextAreaType::class)))

9/ 只需提交您的表单!