2011-11-22 65 views
0

我已经有四列idlanguageidname数据库,textCFML,数据库和多语种网站

根据用户的默认语言,我创建具有为集语言的所有文本查询(where languageid=#user.defaultlanguageid#

什么是最简单的方法来检索这些显示所需的字符串。

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

正在创造一个功能最好的方法去?

回答

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]# 
+0

我最终创建了一个函数,但是你的代码帮助了堆积。谢谢 – Daniel