CFML,数据库和多语种网站
问题描述:
我已经有四列id
,languageid
,name
数据库,text
CFML,数据库和多语种网站
根据用户的默认语言,我创建具有为集语言的所有文本查询(where languageid=#user.defaultlanguageid#
)
什么是最简单的方法来检索这些显示所需的字符串。
似乎每次创建子查询都有点多余工作。
正在创造一个功能最好的方法去?
答
你可能只是有填充一个结构(可能是应用程序级的结构),单个查询 - 这样的事:
<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]#
我最终创建了一个函数,但是你的代码帮助了堆积。谢谢 – Daniel