【发布时间】:2011-09-12 20:13:55
【问题描述】:
我正在寻找一些关于如何处理需要具有必须翻译成 n 种语言的字段的表的建议。我已经读过,最好的方法是拥有一个包含所有非特定语言字段的基表和一个包含所有翻译字段的表。
示例:
PRODUCT PRODUCT_TRANSLATIONS +--------------+ +----------+ |编号 | |编号 | +--------------+ +----------+ |类别 ID | |产品编号 | +--------------+ +----------+ |价格 | |语言标识 | +--------------+ +----------+ |姓名 | +------------------------+ |描述 | +------------------------+因此,我们将拥有包含所有元数据的基表 PRODUCT 和存储所有需要翻译成多种语言的数据的 PRODUCT_TRANSLATIONS 表。 PRODUCT 表与 PRODUCT_TRANSLATIONS 表具有 OneToMany 关系。
处理这种情况的 Doctrine 方法是什么?如果我查询 Products 表,我会将所有翻译加入到该表中。但大多数时候,我只想为给定的产品 ID 提供一个翻译。我可以使用存储库类来编写我自己的 getter 方法来将结果集限制为仅一种语言,但是我将有很多具有需要翻译的字段的表。我敢打赌,这个问题有一个更通用的解决方案。另一个问题是,如果我查询与另一个对象相关的一个对象,我将获得该第二个对象的所有翻译。
顺便说一句:我知道 Gediminas 的可翻译行为扩展,但我不喜欢所有翻译都存储在一个表中的事实。
因此,在国际化方面,我正在寻找任何最佳做法。高度赞赏有关此主题的任何想法。
【问题讨论】:
-
找到解决方案了吗?我也在寻找同样的东西。
标签: php orm internationalization doctrine doctrine-orm