cfml、数据库和多语言网站

发布于 2024-12-17 11:16:33 字数 271 浏览 2 评论 0原文

我有一个数据库,有四列 idlanguageidnametext

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

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

似乎每次都创建一个子查询有点麻烦。

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

I have a database that has four columns id,languageid,name,text

Depending on the users' default language, I create a query that has all the texts for the set language (where languageid=#user.defaultlanguageid#)

What's the easiest way of retrieving these when it comes to displaying the required string.

Seems like creating a subquery every time is a bit much work.

Is creating a function the best way to go?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

余生一个溪 2024-12-24 11:16:33

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

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

You could just have a single query that populates a struct (perhaps an application-level struct) - something like this:

<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>

And then as you need the particular string within the display:

#application.langMap[mylanguageid][name]#
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文