|
I tag
everything with words to a language ID. So any nav-button images, etc, would be
like nav_eng-home and nav_fr-home.
Anything that was static text I now store in a 'phrases' table in a db,
that I tend to load into a structure on application load. This way, my display
files are completely independent of the language of the content, which, if you
start to do sites that are multi- as opposed to bilinugual, becomes a huge
timesaver. I think separating markup from content is always an excellent plan,
and this has been a pretty easy way to do it. Also conveniently, it's pretty
safe to cache the phrases table for days or even weeks at a time, as they're
probably not going to change all that often.
This
method keeps your fuses nice and simple, makes it easy for users to switch
between languages, and I think scales a little easier, so that you could let the
site's administrator's add as many languages as they'd like, without you having
to write any more code - they just simply have to populate the phrases table and
create more language-sensitive images.
Cheers,
Stv.
Sorry, that's all I've got... :)
B
Good ideas thanks a lot. The only problem
with the layout file is that when I did the English side of this site I used
FB2 :-(. Good Idea for the images though. Any more suggestions?
:-)
----- Original Message -----
Sent: Tuesday, May 21, 2002 8:55
PM
Subject: RE: Multinlingula Sites and
Methodology
Personally I would do it the second way. You'd have a lot more
files to modify using the first method if you wanted to ad a third
language.
But instead of using attributes.language I'd simply put the
language preference into a client variable. So instead
of
<cfinclude
template="dsp_display#attrubutes.language#.cfm">
it would read
<cfinclude
template="dsp_display#clients.language#.cfm">.
That way you don't have to pass the language
variable to every single script. (Although, you could also avoid that
hassle by appending attributes.language to #self# in
fbx_settings.cfm)
You could also put the same logic in your layout file like
so:
<cfswitch expression="#client.language#">
<cfcase value="fr">
<cfset fusebox.layoutFile =
"frenchLayout.cfm">
</cfcase>
<cfdefaultcase>
<cfset fusebox.layoutFile =
"englishLayout.cfm">
</cfdefaultcase>
</cfswitch>
That way you could have a different layout for each
language.
You could also set up a variable to reference the correct images in
fbx_settings.cfm:
<cfswitch expression="#client.language#">
<cfcase value="fr">
<cfset request.images =
"path/to/french/images/">
</cfcase>
<cfdefaultcase>
<cfset request.images =
"path/to/english/images/">
</cfdefaultcase>
</cfswitch>
Then in your display files you put
<img src="javascript:void(0);">
Of course you could still use
attributes.language instead of client.language if you
prefer...
Hope this helps,
Balazs
-----Original Message----- From:
John Jonathan Kopanas [mailto:[EMAIL PROTECTED]] Sent: Tuesday,
May 21, 2002 5:38 PM To: Fusebox List Cc: Denis
Doyle Subject: Multinlingula Sites and
Methodology
As a programmer from Quebec, a lot of the
sites I have to work on have to be bilingual. Just as a
clarification, they only have to be in French but most people want them
in English because they do business outside of Quebec. Do not let
me get started with the politics here in Quebec, if it was not for the
women I would be long gone :-). Ok, where was I, oh yes
multilingual sites. I was wondering if anyone has come up with
their own personal methodologies on using Fusebox and creating
multilingual sites to fulfill the following requirements:
- it is easy to add a new language to the
site
- the logic is not duplicated
- Images might have to change for each
language
What I don't want to do:
- I don't want to have to create a new
directory for every language and copy over the site and just change the
text and the tables I reference.
Some possible solutions:
- have the display pages in the different
languages and keep the action pages the same and just add language
conditions to the actions pages. Therefore the amount of switch
cases would increase.
ex)
<cfwitch case="example">
<cfinclude
template="act_process.cfm">
<cfinclude
template="dsp_display.cfm">
</cfswitch>
<cfwitch
case="example_fr">
<cfinclude
template="act_process.cfm">
<cfinclude
template="dsp_display_fr.cfm">
</cfswitch>
- another way to go would be is to pass
language in query string and append it onto the file name in swtich so
it chooses file according to language
<cfwitch case="example">
<cfinclude
template="act_process.cfm">
<cfinclude
template="dsp_display#attrubutes.language#.cfm">
</cfswitch>
Any other suggestions? Thanks for
your help.
==^================================================================
This email was sent to: [EMAIL PROTECTED]
EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrFMa.bV7hkj
Or send an email to: [EMAIL PROTECTED]
T O P I C A -- Register now to manage your mail!
http://www.topica.com/partner/tag02/register
==^================================================================
==^================================================================
This email was sent to: [email protected]
EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrFMa.bV0Kx9
Or send an email to: [EMAIL PROTECTED]
T O P I C A -- Register now to manage your mail!
http://www.topica.com/partner/tag02/register
==^================================================================
|