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

Reply via email to