根据Joomla中的用户语言设计包含翻译的国家/地区特定数据的多语言数据库表的最佳做法是什么?
我无法添加像com_content这样的其他Joomla数据库表中使用的语言键行,因为有些行是且必须是唯一的。
Image 1: Current database table content
Image 2: Current database table structure
Image 3: Current database table Indexes
语言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
或者还有其他更好的方法吗? 提前谢谢!
答案 0 :(得分:0)
由于您正在创建自己的组件,因此您不需要使用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)
(未经测试 - 将其作为草图)。