Re: [T5] How to skin .properties files? Localization almost good...

2010-07-07 Thread t5_lothar

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,
   ConfigurationAliasContributionPageTemplateLocator 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



Re: [T5] How to skin .properties files? Localization almost good...

2010-07-07 Thread Christophe Cordenier
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,
ConfigurationAliasContributionPageTemplateLocator
 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


Re: [T5] How to skin .properties files? Localization almost good...

2010-07-07 Thread Juan E. Maya
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,
        ConfigurationAliasContributionPageTemplateLocator
 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



Re: [T5] How to skin .properties files? Localization almost good...

2008-03-05 Thread Davor Hrg
I agree with vjeran,
there sholud be an aditional string besides locale
for distinguishing resources.

Home.html
Home_customer1.html
Home_customer1_en.html
Home_customer2.html
Home_customer2_en.html

Davor Hrg

On Wed, Mar 5, 2008 at 6:46 AM, Vjeran Marcinko
[EMAIL PROTECTED] wrote:
 Hello.

  I already had this minor problem with Tapestry versions prior to T5, and it
  seems to me that it still persists...

  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.properties
  Home_customer1.properties
  Home_customer2.properties

  Home.html
  Home_customer1.html
  Home_customer2.html

  Unfortunately, setting some dummy Locales like customer1 via JVM
  parameters doesn't work. It raises errors on multiple places in my app (not
  related to Tapestry).

  Ideas?

  BTW, has old Tapestry guys like Erik Hatcher, Mindbridge etc.. left to some
  other web open source projects? :)

  Regads,
  Vjeran


  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [T5] How to skin .properties files? Localization almost good...

2008-03-05 Thread Andreas Pardeike

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,
ConfigurationAliasContributionPageTemplateLocator 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]