we had to do something similar and at the end we decided to create a
new binder prefix "branding" and use the brand associated to the
request to retrieve a label from a property file, appending the
property label to the key. So for example:

if we want to print the  title in english for client 1. we do:
${branding:title}. In the .properties there must exist a label for the
given branding. For example:
title-client1=The title for the client one.

On Wed, Jul 7, 2010 at 11:04 PM, Christophe Cordenier
<christophe.corden...@gmail.com> wrote:
> Hi
>
> Actually locale are made of three elements a language, a country and a
> variant. Maybe you can set a variant per customer...
>
> 2010/7/7 t5_lothar <lothar_n...@gmx.de>
>
>>
>> This approach sounds really promising and works out well for templates. But
>> how about properties? As the author said, something similiar can be used
>> for
>> properties. However, I have difficulties in finding the equivalent...
>>
>>
>> Andreas Pardeike-2 wrote:
>> >
>> > On 5 mar 2008, at 06.46, Vjeran Marcinko wrote:
>> >
>> >> Anyway, sometimes I deploy my Tapestry application to various
>> >> customers which want to have dfferent text messages or maybe even
>> >> outlook of some pages. I can use CSS for some of it, but lets say
>> >> that I want to pick different page/global .property file for
>> >> displaying different messages stored in them.
>> >>
>> >> Actually, perfect solution for me would be some kindof Locale which
>> >> could be set initially through Tapestry configuration, so I could
>> >> have smething like:
>> >>
>> >> Home.html
>> >> Home_customer1.html
>> >> Home_customer2.html
>> >
>> > I would solve this by defining my own PageTemplateLocator (and similar
>> > for
>> > properties too). It would need a service 'YourCustomerMode' which
>> > would be
>> > inserted into the template constructor:
>> >
>> > First, in AppModule.java:
>> >
>> > public PageTemplateLocator buildMyPageLocator(
>> >       @ContextProvider AssetFactory contextAssetFactory,
>> >       ComponentClassResolver componentClassResolver,
>> >       YourCustomerMode customer) {
>> >               return new
>> MyTemplateLocator(contextAssetFactory.getRootResource(),
>> > componentClassResolver, customer);
>> > }
>> >
>> > public static void contributeAliasOverrides(
>> >       @InjectService("MyPageLocator") PageTemplateLocator locator,
>> >       Configuration<AliasContribution<PageTemplateLocator>>
>> configuration) {
>> >
>> > configuration.add(AliasContribution.create(PageTemplateLocator.class,
>> > locator));
>> > }
>> >
>> > and the MyTemplateLocator.java:
>> >
>> > public class MyTemplateLocator implements PageTemplateLocator
>> > {
>> >       private final Resource _contextRoot;
>> >       private final ComponentClassResolver _resolver;
>> >       private final YourCustomerMode _customerMode;
>> >
>> >       public MyTemplateLocator(Resource contextRoot,
>> ComponentClassResolver
>> > resolver, YourCustomerMode customerMode)
>> >       {
>> >               _contextRoot = contextRoot;
>> >               _resolver = resolver;
>> >               _ customerMode = customerMode;
>> >       }
>> >
>> >       public Resource findPageTemplateResource(ComponentModel model,
>> Locale
>> > locale)
>> >       {
>> >               String className = model.getComponentClassName();
>> >               if(!className.contains(".pages."))
>> >                       return null;
>> >
>> >               String logicalName =
>> > _resolver.resolvePageClassNameToPageName(className);
>> >               int slashx = logicalName.lastIndexOf('/');
>> >               if(slashx > 0)
>> >               {
>> >                       String simpleClassName =
>> InternalUtils.lastTerm(className);
>> >                       logicalName = logicalName.substring(0, slashx + 1)
>> + simpleClassName;
>> >               }
>> >
>> >               String path = format("%s_%s.html", logicalName,
>> > _customerMode.getCurrentCustomerName());
>> >               return _contextRoot.forFile(path).forLocale(locale);
>> >       }
>> > }
>> >
>> > // Andreas Pardeike
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> > For additional commands, e-mail: users-h...@tapestry.apache.org
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://old.nabble.com/-T5--How-to-%22skin%22-.properties-files--Localization-almost-good...-tp15843698p29098637.html
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>
>
> --
> Regards,
> Christophe Cordenier.
>
> Committer on Apache Tapestry 5
> Co-creator of wooki @wookicentral.com
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to