Ich habe eine Datenbank mit vier Spalten id
, languageid
, name
, text
Abhängig von den Benutzern Standardsprache, ich erstelle eine Abfrage, die alle Texte für die festgelegte Sprache enthält (where languageid=#user.defaultlanguageid#
)
Wie lassen sich diese am einfachsten abrufen, wenn die erforderliche Zeichenfolge angezeigt wird.
Anscheinend ist das Erstellen einer Unterabfrage jedes Mal ein bisschen Arbeit.
Ist das Erstellen einer Funktion der beste Weg?
Sie könnten nur eine einzige Abfrage haben, die eine Struktur auffüllt (möglicherweise eine Struktur auf Anwendungsebene) - etwa so:
<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>
Und dann, wenn Sie eine bestimmte Zeichenfolge in der Anzeige benötigen:
#application.langMap[mylanguageid][name]#