struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Schachter, Michael" <>
Subject i18n and Resources
Date Mon, 19 Feb 2001 22:20:43 GMT

I'm attempting to develop a fuller form of internationalization for Struts,
which includes retrieving content from more than something such as a
ResourceBundle.  The basic idea is that you have a Resource, which is an
interface that represents anything that has internationalized content.  It
has a method that looks basically like this:

public byte[] getData(String key, Locale locale, TimeZone timeZone);

Of course, time zone is optional, it would depend on the implementation
whether or not to use it.

You would define these resources in some xml file, like so:

<resource type="org.apache.struts.i18n.FileSystemResource"
    <property name="fileBase">/usr/local/content/static</property>

<resource type="org.apache.struts.i18n.DatabaseResource"
    <!-- possibly specify a bunch of database related properties such
          as username and password, or tie it into data sources specified
          in struts-config.xml.  There would also be something specified to
          where exactly in the data source to pull the content from, this
          is way up in the air right now

Then, you would use a taglib inside of your jsp page to retrieve the

<%@ page langauge="java" %>
<%@ taglib uri="/WEB-INF/struts-i18n.tld" prefix="i18n" %>

<h3>This is static internationalized content:</h3>

<i18n:resource key="my.content" name="STATIC_CONTENT" />

<h3>This is internationalized content pulled from a database:</h3>

<i18n:resource key="my.article" name="DB_CONTENT" />

Taking this further, you could create a resource implementation that plugs
into some kind of commercial content managment system, and so on.

Is there any interest in something like this?  I'm currently in the process
of developing this idea, and I'd like as much input as possible, not only
with this, but with internationalization in general.  I attached the
Resources class, just to illustrate a bit.


View raw message