Index: JetspeedProfilerService.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/profiler/JetspeedProfilerService.java,v retrieving revision 1.37 diff -u -r1.37 JetspeedProfilerService.java --- JetspeedProfilerService.java 15 Oct 2002 17:35:32 -0000 1.37 +++ JetspeedProfilerService.java 29 Oct 2002 04:55:01 -0000 @@ -641,25 +641,11 @@ */ protected void getLanguageSettings( Profile profile, RunData rundata ) { - String language = rundata.getParameters().getString(Profiler.PARAM_LANGUAGE); - if (language != null) - { - // dont use locale based fall back - if (language.equals("-1")) - { - return; - } - String country = rundata.getParameters().getString(Profiler.PARAM_COUNTRY); - if (country != null) - { - profile.setCountry(country); - } - profile.setLanguage(language); - } - Locale locale = (Locale)rundata.getUser().getTemp("locale"); + Locale locale = (Locale)rundata.getUser().getTemp("locale"); if (locale == null) { // Get the locale store it in the user object + LocaleDetector.getLocale(""); locale = LocaleDetector.getLocale(rundata); if (locale == null) { @@ -667,17 +653,32 @@ TurbineResources.getString("locale.default.language", "en"), TurbineResources.getString("locale.default.country", "US")); } + rundata.getUser().setTemp("locale", locale); } - language = locale.getLanguage(); - String country = locale.getCountry(); - if (useFallbackLanguage) + + String language = rundata.getParameters().getString(Profiler.PARAM_LANGUAGE); + if (useFallbackLanguage && language != null && !language.equals("-1")) { - profile.setLanguage( locale.getLanguage() ); - if (useFallbackCountry) + String country = rundata.getParameters().getString(Profiler.PARAM_COUNTRY); + if (useFallbackCountry && country != null) { - profile.setCountry( locale.getCountry() ); + profile.setCountry(country); } + profile.setLanguage(language); + } + else + { + language = locale.getLanguage(); + String country = locale.getCountry(); + if (useFallbackLanguage) + { + profile.setLanguage( locale.getLanguage() ); + if (useFallbackCountry) + { + profile.setCountry( locale.getCountry() ); + } + } } } @@ -983,6 +984,18 @@ if (null != mtype) { uri.addPathInfo(Profiler.PARAM_MEDIA_TYPE, mtype); + } + + String language = locator.getLanguage(); + if(null != language) + { + uri.addPathInfo(Profiler.PARAM_LANGUAGE, language); + } + + String country = locator.getCountry(); + if(null != country) + { + uri.addPathInfo(Profiler.PARAM_COUNTRY, country); } return uri; Index: JetspeedLink.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/util/template/JetspeedLink.java,v retrieving revision 1.12 diff -u -r1.12 JetspeedLink.java --- JetspeedLink.java 17 Oct 2002 15:07:33 -0000 1.12 +++ JetspeedLink.java 29 Oct 2002 04:56:04 -0000 @@ -448,7 +448,28 @@ */ public DynamicURI setPage(String page, String paneName); + /** + * Return a link to a desired page for the given media type + * @param mediaType The desired media type + * @return DynamicURI that to the desired page + */ public DynamicURI setMediaType(String mediaType); + + /** + * Return a link to a desired page for the given language + * + * @param language Code of the desired language + * @return DynamicURI that to the desired page + */ + public DynamicURI setLanguage(String language); + + /** + * Return a link to a desired page for the given country + * + * @param country Code of the desired country + * @return DynamicURI that to the desired page + */ + public DynamicURI setCountry(String country); /** * Return an link to a specific portlet using the portet's id Index: BaseJetspeedLink.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/util/template/BaseJetspeedLink.java,v retrieving revision 1.16 diff -u -r1.16 BaseJetspeedLink.java --- BaseJetspeedLink.java 23 Oct 2002 17:16:04 -0000 1.16 +++ BaseJetspeedLink.java 29 Oct 2002 04:55:37 -0000 @@ -1244,5 +1244,15 @@ { return getLink( JetspeedLink.CURRENT, null, null, JetspeedLink.DEFAULT, null, null,null,mediaType); } + + public DynamicURI setLanguage(String language) + { + return getLink( JetspeedLink.CURRENT, null, null, JetspeedLink.DEFAULT, null, null, null, null, language); + } + + public DynamicURI setCountry(String country) + { + return getLink( JetspeedLink.CURRENT, null, null, JetspeedLink.DEFAULT, null, null, null, null, null, country); + } } Index: Customize.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/controls/Customize.java,v retrieving revision 1.13 diff -u -r1.13 Customize.java --- Customize.java 27 Sep 2002 17:02:16 -0000 1.13 +++ Customize.java 29 Oct 2002 04:54:37 -0000 @@ -245,6 +245,18 @@ jsLink.setMediaType(mtype); jsLink.addQueryData("mtype", mtype); } + + String language = data.getParameters().getString(Profiler.PARAM_LANGUAGE); + if(language != null) + { + jsLink.setLanguage(language); + } + + String country = data.getParameters().getString(Profiler.PARAM_COUNTRY); + if(country != null) + { + jsLink.setCountry(country); + } } catch (Exception e)