On Mon, Oct 26, 2009 at 18:59, Thomas Mortagne
<[email protected]> wrote:
> Hi devs,
>
> We need to support some way internationalization of everything in the
> rendering that appear in the UI, for now it's mainly related to
> macros.
>
> What I propose is to introduce the rule that any displayable String
> returned by the API (MacroDescriptor#getName,
> ParameterDescriptor#getDescription, etc.) could be a l10n key. Then
> the API user call the l10n component to get the final String.
>
> pros:
> - no need to touch the current API
> - it avoid having complex API to support l10n specifics and makes
> pretty much everything depends on l10n component. It's easier for
> macro author to write a quick macro with some description without
> having to create l10n resource and call the l10n component just for
> english for example.
> - the displayer can control how to get actual translations the way it wants
> - we need something like that for wiki macros anyway: XWiki does not
> support translations of objects yet (and for long I guess since the
> issue is at database level) and it would be a pain to have to copy the
> content of the macro by language since most of the time the script of
> the macro would not be related to the language
>
> cons:
> - it's more work for the API user to filter the String with the l10n
> component to get the actual final String
>
> One detail I'm not sure of is if we introduce some syntax to
> explicitly indicate it's a l10n key or if we just always give the
> String to the l10n component which will return it as it is if it can't
> find any matching key.
>
> Having an explicit way to indicate a String is a key would be better
> to track l10n keys bugs but introduce a syntax is always more complex
> (what chars to choose, how to escape, etc...).

A good candidate found by Vincent would be to reuse
commons-configuration syntax to insert variable in a property.

See 
http://commons.apache.org/configuration/userguide/howto_basicfeatures.html#Variable_Interpolation

Good thing is that both commons-configuration and l10n are based on
java standard Properties and also that it's the same syntax as other
tools to describe properties variable (Maven, Ant, ...) which make it
almost a standard.

The idea would be that instead of finding if the returned string is a
key or not we would see it as a value that can contain variable and
which would generally be just the variable. For example we could
return "${rendering.macro.include.parameter.document.description}" as
include macro "document" field description.

>
> WDYT ?
>
> Thanks,
> --
> Thomas Mortagne
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to