我有一系列属性文件,用于以各种语言显示消息。
因此,根据当前的语言设置,消息可能会以英语、法语或德语等显示。
在我的数据库中,我有各种记录,而不是实际值,我放置了属性文件的键,以便在使用该数据检索记录时,我可以用相应的语言显示消息。
例如。我的数据库中可能有这样一条记录:
约翰|史密斯|阿Q|等等
其中AQ
在相应属性文件中可以显示为Doctor
或Arzt
等
我的问题是我需要偶尔对这些属性进行排序,虽然这些属性在数据库中的值是代码,但无法在数据库中进行排序。
来自 here我得到了使用临时表和排序的建议,但这对我来说就 1 个属性来说没问题。
我正在寻找一种更通用的解决方案来处理多个属性文件,并尽可能避免检查代码:
例如如果此查询在 X 上排序,则创建此临时表
等等。
有没有通用的解决方案?
最佳答案
与其将语言信息存储在属性文件中,不如将其存储在数据库的表中。然后这一切都可以轻松完成。
Records:
first | last | messageid |
John | Smith | 1 |
Messages:
messageid | language | message |
1 | English | Mr. |
1 | Spanish | Sr. |
2 | English | Doctor |
etc...
然后按本地语言的消息排序的查询将是这样的:
select first, last, message from records r
inner join messages m on m.messageid = r.messageid
where language = [your current language]
order by message
关于java - 如何在数据库应用中最好地处理多种语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13065247/