小编Dan*_*Dan的帖子

学说2 - i18n的最佳实践?

我正在寻找一些关于如何处理需要将字段翻译成n种语言的表的建议.我已经读过最好的方法,它有一个基表,它包含所有非语言特定的字段,一个表包含所有带翻译的字段.

例:


 PRODUCT             PRODUCT_TRANSLATIONS
+--------------+    +----------------------+
| id           |    | id                   |
+--------------+    +----------------------+
| category_id  |    | product_id           |
+--------------+    +----------------------+
| price        |    | language_id          |
+--------------+    +----------------------+
                    | name                 |
                    +----------------------+
                    | description          |
                    +----------------------+

因此,我们将拥有包含所有元数据的基表PRODUCT和包含所有需要翻译成多种语言的数据的PRODUCT_TRANSLATIONS表.PRODUCT表与PRODUCT_TRANSLATIONS表具有OneToMany关系.

什么是处理这种情况的学说方式?如果我查询Products表,我会将所有翻译加入此表.但大多数时候我只想为给定的产品ID进行一次翻译.我可以使用存储库类来编写我自己的getter方法,将结果集限制为只有一种语言,但是我会有很多表都需要翻译.我敢打赌,这个问题有一个更通用的解决方案.另一个问题是,如果我查询与另一个对象相关的一个对象,我将获得该第二个对象的所有翻译.

顺便说一句:我知道Gediminas的可翻译行为扩展,但我不喜欢所有翻译都存储在一个表中的事实.

所以我在寻找国际化方面的最佳实践.任何关于这个主题的想法都非常感谢.

php orm doctrine internationalization doctrine-orm

7
推荐指数
1
解决办法
3579
查看次数

标签 统计

doctrine ×1

doctrine-orm ×1

internationalization ×1

orm ×1

php ×1