[Zope] Internationalization
Rob W. W. Hooft
rob@hooft.net
Mon, 26 Jun 2000 15:36:20 +0200 (CEST)
I only have a few internationalized pages, but I'm more than half-way
happy with a very simple approach:
1) an External Method "preferred_lang", which takes a list of possible
languages as argument, and returns the language from that list that
has the highest ranking in HTTP_ACCEPT_LANGUAGE. If there is no
hit, it returns the first language in the list.
------------------------------------
import string
def preferred_lang(self,langs):
for lang in map(string.strip,string.split(self.HTTP_ACCEPT_LANGUAGE,',')):
if lang in langs:
return lang
return langs[0]
-------------------------------------
This External Method is available as "PreferredLanguage" on the
root folder.
2) In each internationalized page, I call the External Method with a
list of the available languages (it is not the same for all
pages), and then select the contents based on the result.
------------------------------------
<dtml-var standard_html_header>
<dtml-call "REQUEST.set('lang',PreferredLanguage(REQUEST,['en','nl']))">
<dtml-if "lang=='nl'">
<H2>De Hooft Familie Webdienst</H2>
<dtml-else>
<H2>The Hooft Family Web</H2>
</dtml-if>
....etc....
-------------------------------------
One advantage of this approach is that it keeps the different versions
together (making updates to the information easy to keep consistent).
One disadvantage of this approach is that it keeps the different
versions together (making it difficult to appoint different people to
maintaining the different languages), and another disadvantage is that
it clutters up the dtml source.
Suggestions for improvements always welcome.
Regards,
Rob Hooft
--
===== rob@hooft.net http://www.hooft.net/people/rob/ =====
===== R&D, Nonius BV, Delft http://www.nonius.nl/ =====
===== PGPid 0xFA19277D ========================== Use Linux! =========