On Thu, 2003-02-13 at 12:53, Konstantin Piroumian wrote:
> From: "Bruno Dumon" <[EMAIL PROTECTED]>
[...]
> > > or maybe use namespaces:
> > > <input name="Submit" value="dynamic" i18n:attr="mybundle:name
> > other:value">?
> >
> > I think this will cause confusion with namespaced attributes.
> > How about this:
> > <input name="mybundle:Submit" value="other:dynamic" i18n:attr="name
> > value">
>
> Don't forget that if value is not found then the key is displayed by default
> (if not configured other 'untranslated' message). So it would display
> mybundle:Submit which can be confusing for users (even it is not a good way
> to use as default values).
Maybe we can just remove the catalogue prefix (mybundle:) in that case?
we'll need to parse that value anyhow.
>
> >
> > (this approach assumes one's not using colons in i18n key names)
> >
> > Now about the configuration, here's what I propose:
> >
> > for the component-level configuration, something like this:
> >
> > <map:transformer name="i18n" src="...">
> > <catalogues default="cat1">
> > <catalogue name="cat1">
> > <name>...</name>
> > <location>...</location>
> > </catalogue>
> > <catalogue name="cat2">
> > <name>...</name>
> > <location>...</location>
> > </catalogue>
> > </catalogues>
> > </map:transformer>
>
> Why have two 'name's: one as an attribute, the second one as an element?
It's a logical name, so that the catalogue filename is not directly used
in the instance documents.
> What about 'id'? (It is common for JSP to use 'id' in similar cases).
id is a better name indeed.
> And
> also I'd make it as single line:
>
> <catalogue id="cat1" name="messages" location="translations" />
yep
>
> and the default one can have no id:
>
> <catalogue name="default" location="translations" />
But if the catalogue has no id, it is impossible to refer to it (which
can be required if a certain i18n transformer instance uses another
catalogue as the default).
So I would make the configuration as follows:
<catalogues default="cat1">
<catalogue id="cat1" name="..." location="..." />
<catalogue id="cat2" name="..." location="..." />
</catalogues>
[...]
> > On the component instance level, I thought of only allowing to override
> > the default bundle (and not specifying additional bundles):
>
> Not sure about this one, but it's the same as the old behavior, so should be
> Ok.
I meant here specifying another catalogue id as the default catalogue,
such as
<map:transform type="i18n">
<map:parameter name="default-catalogue-id" value="cat2"/>
</map:transform>
>
>
> >
> > <map:transform type="i18n">
> > <map:parameter name="default-catalogue" value="cat2"/>
> > </map:transform>
>
> Why not use the old syntax? E.g.:
>
> <map:parameter name="catalogue-name" value="menu"/>
>
> Don't think that it'd be much confusing, but will preserve a little backward
> compatibility.
But will the value ("menu") in this case refer to the id or the name of
a catalogue?
What I would do is:
(1) if the old syntax is used (i.e. there are parameters called
'catalogue-name' and 'catalogue-location'), then use that catalogue as
the default
(2) if there is parameter 'default-catalogue-id', then use that
catalogue as the default
(3) if both are used at the same time, go for (1) but log a warning
(4) otherwise use the default one specified in the component
configuration
Likewise, for the component configuration:
(1) if the old syntax is used (i.e. there are elements called
'catalogue-name' and 'catalogue-location'), then use those (thus then
there will be only one catalogue)
(2) if the new syntax is used (thus when there is a catalogues
element), use that.
(3) if both are used at the same time, go for (1) but log a warning
--
Bruno Dumon http://outerthought.org/
Outerthought - Open Source, Java & XML Competence Support Center
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]