cfml,数据库和多语言网站

时间:2011-11-22 00:13:10

标签: coldfusion multilingual cfquery

我的数据库有四列idlanguageidnametext

根据用户的默认语言,我创建一个包含所有设置语言文本的查询(where languageid=#user.defaultlanguageid#

在显示所需字符串时,检索这些内容的最简单方法是什么。

似乎每次创建子查询都有点工作。

创建函数是最好的方法吗?

1 个答案:

答案 0 :(得分:3)

您可以只使用一个填充结构的查询(可能是应用程序级结构) - 如下所示:

<cfif not IsDefined("application.langMap")>

<cfquery name="langNames" datasource="...">SELECT * from langTable</cfquery>

<cfset application.langMap = {}>
<cfloop query="langNames">
   <cfif not StructKeyExists(application.langMap, languageid)>
       <cfset application.langMap[languageid] = {}>
   </cfif>
   <cfset application.langMap[languageid][name] = text>
</cfloop>

</cfif>

然后,当您需要显示中的特定字符串时:

#application.langMap[mylanguageid][name]#