设计多语言数据库表的最佳实践是什么(取决于Joomla中的用户语言,该表包含特定国家/地区的翻译数据)?
我无法添加像在其他Joomla数据库表(例如com_content)中所使用的那样的语言键行,因为某些行是而且必须是唯一的。
语言A的数据
ID| Name | Code3 | Code2 | TaxRateID | EU
- - - - - - - - - - - - - - - - - - - - - -
12 Aruba ABW AW 1 0
13 Australia AUS AU 1 0
14 Austria AUT AT 2 1
语言B的数据
ID | Name | Code3 | Code2 | TaxRateID | EU
- - - - - - - - - - - - - - - - - - - - - - -
12 Aruba ABW AW 1 0
13 Australien AUS AU 1 0
14 Österreich AUT AT 2 1
是否应该为每种语言添加带有语言后缀的额外表?
prefix_table_LANGUAGE
还是有其他更好的方法? 提前致谢!
由于您正在创建自己的组件,因此无需使用Joomla的本机多语言功能。
我会按原样保留您的表格,使用该名称作为缺少翻译的备用。 添加另一个表, country_names
,将language
和code3
作为主键,以保留翻译后的国家/地区名称。
因此,您将得到(简化)
#__countries {
id,
name,
code3,
code2,
tax_rate_id,
eu
}
和
#__country_names {
code3,
language,
name
}
您的查询如下所示:
SELECT a.id, COALESCE(b.name, a.name) AS name, a.code3, a.code2, a.tax_rate_id, a.eu
FROM #__countries AS a
LEFT JOIN #__country_names AS b ON (a.code3=b.code3 AND b.language=$lang)
(未经测试-视其为草图)。