Dan*_*Dan 7 php orm doctrine internationalization doctrine-orm
我正在寻找一些关于如何处理需要将字段翻译成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的可翻译行为扩展,但我不喜欢所有翻译都存储在一个表中的事实.
所以我在寻找国际化方面的最佳实践.任何关于这个主题的想法都非常感谢.