forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thorsten Scherler <thors...@apache.org>
Subject Re: How to avoid hard-coding site-visible message strings in skin files
Date Thu, 02 Jun 2005 17:04:45 GMT
On Thu, 2005-06-02 at 10:34 +0100, Ross Gardler wrote:
> Pedro I. Sanchez wrote:
> > Hello,
> > 
> > A few days ago I added issue FOR-506 on this topic. This is my original
> > message:
> > 
> >   "Text strings like "Copyright", "Published", and "Search" are
> >    hardcoded into skin files like site2xhtml.xsl. When creating web
> >    sites in languages other than English the web developer is forced
> >    to create local versions of these skin files with the appropriated
> >    translations.
> > 
> >    Instead, the DTD for the skinconf.xml should be improved to allow
> >    these translations to be specified in this file. This would make
> >    Forrest much easier to use."
> > 
> > Ross suggested the following as an example of a possible solution:
> > 
> > <i18n lang="en">
> >   <token name="lastPublished" value="Last Published"/>
> >   <token name="copyright" value="Copyright"/>
> > </i18n>
> > <i18n lang="??">
> >   <token name="lastPublished" value="???????"/>
> >   <token name="copyright" value="???????"/>
> > </i18n>
> > 
> > This would work for me as long as I can also specify the language
> > manually with something like
> > 
> > <i18n lan="en" />
> 
> I'm not sure how the existing i18n thing works, but there is a way to 
> specify what language you want the menus in, so I guess you would use 
> the same mechanism.
> 
> > And this, because at this moment I am more interested in a uni-lingual
> > (non-English) web site rather than in a multi-lingual one. I believe
> > the former is by far the most common case.
> > 
> > Another possibility could be something like this, totally independent
> > of a "lang" setting and just driven by the skin:
> > 
> > <skinlabels name="pelt">
> >   <keyword name="lastPublished" value="???????"/>
> >   <keyword name="copyright" value="???????"/>
> > </skinlabels>
> 
> I don't see the value in this. I would imagine that regardless of what 
> skin you are using you would want the same values to appear in the 
> output site.
> 
> One thing we must be sure of is that any solution implemented now can be 
> integrated into Thorstens work on views. In fact, it would be better to 
> see these changes go directly into views.
> 
> Thorsten, what would the equivalent to the above be in views?

I started the work in view on it and it seems to work till the final
stage. :( ...but I guess it is a bug that I hope to find quite fast. ;-)
I tested with one contract and need to finish the rest.

Actually I did not do it like you or Pedro suggested but the "cocoon"
way with a simple i18n transformer in the contracts. That means we have
a 
<map:transformer name="xinclude"
        src="org.apache.cocoon.transformation.XIncludeTransformer"/>
      <map:transformer name="i18n"
src="org.apache.cocoon.transformation.I18nTransformer">
	      <catalogues default="contracts">
	        <catalogue id="other" name="OtherMessages"
location="messages"/>
	        <catalogue id="contracts" name="ContractsMessages"
location="messages"/>
	      </catalogues>
	      <cache-at-startup>true</cache-at-startup>
	    </map:transformer>
in the output.xmap of the viewHelper.xhmtl and nothing in the
skinconf.xml.

IMO that would be as well the way to implement it for the "old fashion"
skins but I do not know how this affect the cli.

salu2
-- 
thorsten

"Together we stand, divided we fall!" 
Hey you (Pink Floyd)


Mime
View raw message