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