Symfony2实现数据库翻译的最佳方法

彼得卡纳

我正在将一个多语言网站重构为symfony。

该站点在数据库(产品描述,产品名称...)和语言表中存储了大量语言内容。看起来非常像这些:表格产品:-id-价格-库存-...

表product_language:-id_product -id_language -name -description

表语言:-id -name -code

因此,我正在考虑以最佳方式将其迁移到symfony和doctrine,我一直在研究可翻译的扩展名,但我不知道它是否适合此处(我不确定是否有可能将其广告语言表)

谢谢!

迈克尔·维伦纽夫

我使用KNP Translatable行为构建了一个多语言电子商务平台,这真是太棒了。

它将完全适合您的需求。这是我的“产品”实体及其对数据库的影响的简要示例。

//AcmeBundle/Entity/Product.php
use Knp\DoctrineBehaviors\Model as ORMBehaviors;

/**
 * @ORM\Table(name="product")
 */
class Product
{
    use ORMBehaviors\Translatable\Translatable;

    /**
     * @var integer
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var string
     * @ORM\Column(name="sku", type="string", length=255)
     */
    protected $sku;

    // other properties

然后,将所有可翻译属性放入一个名为ProductTranslation的新实体中

//AcmeBundle/Entity/ProductTranslation.php
use Knp\DoctrineBehaviors\Model as ORMBehaviors;

/**
 * @ORM\Table(name="product_translation")
 * @ORM\Entity
 */
class ProductTranslation
{
    use ORMBehaviors\Translatable\Translation,
        ORMBehaviors\Sluggable\Sluggable;

    /**
     * @ORM\Column(name="name", type="string", length=255)
     */
    protected $name;

    /**
     * @ORM\Column(name="description", type="text", nullable=true)
     */
    protected $description; 

这会给你两张桌子

第一个包含所有产品信息(在此示例中为SKU)。对于每个使用1-N关系的已翻译实例,第二个实例将有一行。

完成后,您可以使用以下任一方法:

$product->translate('en')->getName();
$product->translate('fr')->getName();

甚至更好

$product->getName();

将使用当前的用户区域设置输出良好的翻译。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自数据库的Symfony2 REST翻译

来自分类Dev

Symfony2数据库配置

来自分类Dev

插入数据库symfony2

来自分类Dev

在PHP中实现数据库连接的最佳方法

来自分类Dev

Symfony2无法连接到远程数据库

来自分类Dev

使用Symfony2和Doctrine导入数据库

来自分类Dev

Symfony2 ORM实体插入数据库

来自分类Dev

symfony2使用理论的动态数据库连接

来自分类Dev

从数据库加载的Symfony2实体属性

来自分类Dev

加载不同的数据库Symfony2

来自分类Dev

Symfony2从数据库查询特定值

来自分类Dev

Symfony2 FOSUserBundle更改数据库表

来自分类Dev

加载不同的数据库Symfony2

来自分类Dev

Symfony2 SonataClassificationBundle从数据库查询

来自分类Dev

Symfony2从数据库查询特定值

来自分类Dev

坚持数据库Symfony2的MySQL错误

来自分类Dev

Symfony2将数据库架构信息存储在数据库表中

来自分类Dev

在Symfony2 / MVC中实现返回响应的方法的最佳位置

来自分类Dev

Symfony2-用默认值预填充实体数据库表的最佳方法是什么?

来自分类Dev

无法从Symfony 4.3.3中的数据库加载翻译

来自分类Dev

如何使用选择框从数据库行symfony2中获取数据

来自分类Dev

在基本视图(树枝)+ symfony2中使用数据库中的数据

来自分类Dev

如何从数据库中的现有数据生成子弹字段-Doctrine Symfony2

来自分类Dev

在基础视图(树枝)+ symfony2中使用数据库中的数据

来自分类Dev

Symfony2,Doctrine,从数据库获取数据以生成Excel

来自分类Dev

Symfony2 / Doctrine2-从数据库获取日期时间时的问题

来自分类Dev

Symfony2 Doctrine2 Oracle数据库NUMBER DEFAULT类型?

来自分类Dev

组,消息和位置之间的Symfony2 / Doctrine2数据库关系

来自分类Dev

使用Node.js和Postgresql数据库实现Notification系统的最佳方法

Related 相关文章

  1. 1

    来自数据库的Symfony2 REST翻译

  2. 2

    Symfony2数据库配置

  3. 3

    插入数据库symfony2

  4. 4

    在PHP中实现数据库连接的最佳方法

  5. 5

    Symfony2无法连接到远程数据库

  6. 6

    使用Symfony2和Doctrine导入数据库

  7. 7

    Symfony2 ORM实体插入数据库

  8. 8

    symfony2使用理论的动态数据库连接

  9. 9

    从数据库加载的Symfony2实体属性

  10. 10

    加载不同的数据库Symfony2

  11. 11

    Symfony2从数据库查询特定值

  12. 12

    Symfony2 FOSUserBundle更改数据库表

  13. 13

    加载不同的数据库Symfony2

  14. 14

    Symfony2 SonataClassificationBundle从数据库查询

  15. 15

    Symfony2从数据库查询特定值

  16. 16

    坚持数据库Symfony2的MySQL错误

  17. 17

    Symfony2将数据库架构信息存储在数据库表中

  18. 18

    在Symfony2 / MVC中实现返回响应的方法的最佳位置

  19. 19

    Symfony2-用默认值预填充实体数据库表的最佳方法是什么?

  20. 20

    无法从Symfony 4.3.3中的数据库加载翻译

  21. 21

    如何使用选择框从数据库行symfony2中获取数据

  22. 22

    在基本视图(树枝)+ symfony2中使用数据库中的数据

  23. 23

    如何从数据库中的现有数据生成子弹字段-Doctrine Symfony2

  24. 24

    在基础视图(树枝)+ symfony2中使用数据库中的数据

  25. 25

    Symfony2,Doctrine,从数据库获取数据以生成Excel

  26. 26

    Symfony2 / Doctrine2-从数据库获取日期时间时的问题

  27. 27

    Symfony2 Doctrine2 Oracle数据库NUMBER DEFAULT类型?

  28. 28

    组,消息和位置之间的Symfony2 / Doctrine2数据库关系

  29. 29

    使用Node.js和Postgresql数据库实现Notification系统的最佳方法

热门标签

归档