portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Massimiliano Dessì <desma...@yahoo.it>
Subject Re: [patch] JetspeedLocalizationService
Date Thu, 06 Mar 2003 17:57:05 GMT
Attached to the mail is the new version portlet to
change the language with a servlet filter, the turbine
resources.prop to enable the jetspeed Localization
Service and localization tool and a diagram to explain
the flow.
I have modified the Localization service only to
change the language witout the browser role (language
header).
The language changes at runtime.
I don't understand your problem with the change
language.
Test this file and send a feedback to me ,
in this way i can help you

Massimiliano


 --- Jon Evans <jon.evans@misgl.com> ha scritto: > Hi
David,
> 
> David Sean Taylor wrote:
> 
> > The patch isn't necessary I just committed a patch
> from
> > Missimilliano Dessi. It works fine as is. Although
> I thought we had
> > country flag icons with the original portlet.
> 
> I have just got round to using the latest CVS.  I
> like the fact that
> the changeLanguage portlet is now a .vm, it will
> make it a lot easier
> to change the look and feel for my site.
> 
> I'm still concerned though with
>
org.apache.jetspeed.services.customlocalization.JetspeedLocalizationService.
> 
> It still doesn't seem to work if you have more than
> one bundle defined
> in locale.default.bundles.  It only seems to look at
> the first bundle.
> 
> If you look at the class, it extends
> TurbineLocalizationService.
> JetspeedLocalizationService implements an
> initBundleNames() method
> which populates an instance variable String[]
> bundleNames.  But all of
> the getString(...) methods call
> super.getString(...), where
> TurbineLocalizationService will use its own instance
> variables and will
> not find the strings.
> 
> 
> Let me put it another way.  Each class defines an
> identical set of 
> instance variables, like this:
> 
> JetspeedLocalizationService    
> TurbineLocalizationService
> ===============================
> ===============================
> private Hashtable bundles;      private Hashtable
> bundles;
> private String bundleNames[];   private String
> bundleNames[];
> private Locale defaultLocale;   private Locale
> defaultLocale;
> private String defaultLanguage; private String
> defaultLanguage;
> private String defaultCountry;  private String
> defaultCountry;
> 
> After JetspeedLocalizationService.init() is called
> they look like this:
> 
> JetspeedLocalizationService
> TurbineLocalizationService
> ===========================
> ==========================
> bundles          null       bundles         set
> bundleNames[]    set        bundleNames[]   null
> defaultLocale    null       defaultLocale   set
> defaultLanguage  null       defaultLanguage set
> defaultCountry   null       defaultCountry  set
> 
> when getString(String bundleName, Locale locale,
> String key) is called
> in JetspeedLocalizationService, it calls
> super.getString(...).  This
> calls getBundle(String, Locale), which is
> implemented in
> JetspeedLocalizationService as a call to
> super.getBundle(String,
> Locale), so we are back to the code in
> TurbineLocalizationService.
> 
> getBundle(String, Locale) in
> TurbineLocalizationService returns the
> default bundle to the getString(...) method.
> 
> Back in getString(String bundleName, Locale locale,
> String key), we
> look up the requested key in the bundle, using
> getStringOrNull(), which 
> returns null because the string I'm looking for
> isn't in the first 
> bundle, it's in the second.
> 
> The next test is intended to determine whether we
> need to check the
> other bundles for the key.  The test is:
> 
>          // Look for text in list of default
> bundles.
>          if (value == null && bundleNames.length >
> 0)
> 
> At this point we throw a NullPointerException
> because bundleNames is
> null (it was never set in
> TurbineLocalizationService, only in
> JetspeedLocalizationService).
> 
> The whole of the JetspeedLocalizationService class
> can be reduced to a 
> single function, getLocale(RunData runData).
> 
> The attached patch does this, and seems to work. 
> Yes, I compiled from 
> clean this time. :-)
> 
> Jon
>  
>  
>  
>  
>  
> -- 
>  
> Merlin Information Systems Limited, 
>  
> Merlin House, Gawcott Road, Buckingham, United
> Kingdom. MK18 1TN
>  
> Tel: +44 (0) 1280 824331  Fax: +44 (0) 1280 824112
>  
> 
>  
> http://www.misgl.com
>  
> Provider of IT Services and Online Portal Support
> Services. 
>  
>  
>  
> Confidentiality:
>  
> The information contained in this email (including
> any attachments) is confidential and is intended
> solely for the use of the named addressee. Access,
> copying or re-use of the information in it by any
> other person is not authorised. If you are not the
> intended recipient, please notify us immediately by
> telephone or by e-mail to admin@misgl.com
>  
> 
>  
>  
>  
> *** This mail has been scanned for viruses ***
>  
> 
>  
> > Index:
>
src/java/org/apache/jetspeed/services/customlocalization/JetspeedLocalizationService.java
>
===================================================================
> RCS file:
>
/home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/customlocalization/JetspeedLocalizationService.java,v
> retrieving revision 1.4
> diff -u -r1.4 JetspeedLocalizationService.java
> ---
>
src/java/org/apache/jetspeed/services/customlocalization/JetspeedLocalizationService.java
> 26 Feb 2003 17:46:34 -0000	1.4
> +++
>
src/java/org/apache/jetspeed/services/customlocalization/JetspeedLocalizationService.java
> 4 Mar 2003 12:49:37 -0000
> @@ -62,14 +62,10 @@
>   */
>  
>  // Java imports
> -import java.util.Hashtable;
>  import java.util.Locale;
> -import java.util.ResourceBundle;
>  
>  // Turbine imports
>  import
>
org.apache.turbine.services.localization.TurbineLocalizationService;
> -import
> org.apache.turbine.services.InitializationException;
> -import
>
org.apache.turbine.services.resources.TurbineResources;
>  import org.apache.turbine.util.RunData;
>  
>  // Jetspeed imports
> @@ -78,81 +74,6 @@
>  
>  public class JetspeedLocalizationService extends
> TurbineLocalizationService implements
> CustomLocalizationService
>  {
> -    public JetspeedLocalizationService()
> -    {
> -        super();
> -    }
> -
> -    public void init() throws
> InitializationException
> -    {
> -        super.init();
> -    }
> -
> -    protected void initBundleNames(String
> ignored[])
> -    {
> -        bundleNames =
>
TurbineResources.getStringArray("locale.default.bundles");
> -        String name =
> TurbineResources.getString("locale.default.bundle");
> -        if (name != null && name.length() > 0)
> -        {
> -            if (bundleNames == null ||
> bundleNames.length <= 0)
> -            {
> -              bundleNames = (new String[] {name});
> -            }
> -            else
> -            {
> -              String array[] = new
> String[bundleNames.length + 1];
> -              array[0] = name;
> -              System.arraycopy(bundleNames, 0,
> array, 1, bundleNames.length);
> -              bundleNames = array;
> -            }
> -        }
> -        if (bundleNames == null)
> -        {
> -            bundleNames = new String[0];
> -        }
> -    }
> -
> -    public String getDefaultBundleName()
> -    {
> -        return bundleNames.length > 0 ?
> bundleNames[0] : "";
> -    }
> -
> -    public ResourceBundle getBundle()
> -    {
> -        return super.getBundle();
> -    }
> -
> -    public ResourceBundle getBundle(String
> bundleName)
> -    {
> -        return super.getBundle(bundleName);
> -    }
> -
> -    public ResourceBundle getBundle(String
> bundleName, String languageHeader)
> -    {
> -      return super.getBundle(bundleName,
> languageHeader);
> -    }
> -
> -    public ResourceBundle getBundle(RunData data)
> -    {
> -      return super.getBundle(data);
> -    }
> -
> -    public ResourceBundle getBundle(String
> bundleName, RunData data)
> -    {
> -      return super.getBundle(bundleName, data);
> -    }
> -
> -    public ResourceBundle getBundle(String
> bundleName, Locale locale)
> -    {
> -     return super.getBundle(bundleName, locale);
> -    }
> -
> -    public void setBundle(String defaultBundle)
> -    {
> -      super.setBundle(defaultBundle);
> -    }
> -
> -
>      public final Locale getLocale(RunData data)
>      {
>          JetspeedUser user = (JetspeedUser)
> data.getUser();
> @@ -183,21 +104,4 @@
>              }
>          }
>      }
> -
> -    public Locale getLocale(String header)
> -    {
> -        return super.getLocale(header);
> -    }
> -
> -    public String getString(String bundleName,
> Locale locale, String key)
> -    {
> -        return super.getString(bundleName, locale,
> key);
> -    }
> -
> -    private Hashtable bundles;
> -    private String bundleNames[];
> -    private Locale defaultLocale;
> -    private String defaultLanguage;
> -    private String defaultCountry;
> -
> -}
> +}
> \ No newline at end of file
> 
> >
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
jetspeed-dev-help@jakarta.apache.org 

______________________________________________________________________
Yahoo! Cellulari: loghi, suonerie, picture message per il tuo telefonino
http://it.yahoo.com/mail_it/foot/?http://it.mobile.yahoo.com/index2002.html
Mime
View raw message