Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java,v diff -u -r1.1.6.2 -r1.1.6.3 --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java 21 Sep 2007 02:14:17 -0000 1.1.6.2 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java 21 Sep 2007 03:49:25 -0000 1.1.6.3 @@ -53,7 +53,7 @@ import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.HashUtil; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.audit.IAuditService; @@ -673,7 +673,7 @@ // set locale to default system locale if cell is empty private SupportedLocale getLocale(String localeId){ if (localeId==null || localeId=="") { - return LangUtil.getDefaultLocale(); + return LanguageUtil.getDefaultLocale(); } else { try { return (SupportedLocale)service.findById(SupportedLocale.class, new Integer(localeId)); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java,v diff -u -r1.3.4.1 -r1.3.4.2 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java 21 Sep 2007 02:14:17 -0000 1.3.4.1 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java 21 Sep 2007 03:49:25 -0000 1.3.4.2 @@ -48,7 +48,7 @@ import org.lamsfoundation.lams.usermanagement.SupportedLocale; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -105,7 +105,7 @@ org.setParentOrganisation(userService.getRootOrganisation()); org.setOrganisationType((OrganisationType)userService.findById(OrganisationType.class,OrganisationType.COURSE_TYPE)); org.setOrganisationState((OrganisationState)userService.findById(OrganisationState.class,OrganisationState.ACTIVE)); - SupportedLocale locale = LangUtil.getDefaultLocale(); + SupportedLocale locale = LanguageUtil.getDefaultLocale(); org.setLocale(locale); userService.saveOrganisation(org, user.getUserID()); serverOrgMapForm.set("orgId", org.getOrganisationId()); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java,v diff -u -r1.44.6.1 -r1.44.6.2 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 21 Sep 2007 02:14:17 -0000 1.44.6.1 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 21 Sep 2007 03:49:25 -0000 1.44.6.2 @@ -49,7 +49,7 @@ import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; @@ -138,7 +138,7 @@ request.setAttribute("globalRoles", getGlobalRoles(user)); } else { // create a user try { - SupportedLocale locale = LangUtil.getDefaultLocale(); + SupportedLocale locale = LanguageUtil.getDefaultLocale(); userForm.set("localeId", locale.getLocaleId()); } catch(Exception e) { log.debug(e); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/Attic/ImportV1ContentsSaveAction.java,v diff -u -r1.4.6.2 -r1.4.6.3 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java 21 Sep 2007 02:14:17 -0000 1.4.6.2 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java 21 Sep 2007 03:49:25 -0000 1.4.6.3 @@ -55,7 +55,7 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.HashUtil; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -111,7 +111,7 @@ boolean onlyMembers = importV1ContentsForm.getOnlyMembers(); // default import options - SupportedLocale locale = LangUtil.getDefaultLocale(); + SupportedLocale locale = LanguageUtil.getDefaultLocale(); final OrganisationType courseType = (OrganisationType)service.findById( OrganisationType.class, OrganisationType.COURSE_TYPE); final OrganisationState activeState = (OrganisationState)service.findById( Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java,v diff -u -r1.9.2.1 -r1.9.2.2 --- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java 21 Sep 2007 02:14:16 -0000 1.9.2.1 +++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java 21 Sep 2007 03:49:26 -0000 1.9.2.2 @@ -28,7 +28,7 @@ import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.springframework.web.context.support.WebApplicationContextUtils; public class RegisterServiceSoapBindingImpl implements Register { @@ -76,7 +76,7 @@ AuthenticationMethod.class, AuthenticationMethod.DB)); user.setCreateDate(new Date()); user.setDisabledFlag(false); - user.setLocale(LangUtil.getDefaultLocale()); + user.setLocale(LanguageUtil.getDefaultLocale()); user.setFlashTheme(service.getDefaultFlashTheme()); user.setHtmlTheme(service.getDefaultHtmlTheme()); service.save(user); Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java,v diff -u -r1.11.4.1 -r1.11.4.2 --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 21 Sep 2007 02:14:18 -0000 1.11.4.1 +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 21 Sep 2007 03:49:27 -0000 1.11.4.2 @@ -55,7 +55,7 @@ import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.CSVUtil; import org.lamsfoundation.lams.util.HashUtil; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; /** *

@@ -138,7 +138,7 @@ org.setParentOrganisation(serverMap.getOrganisation()); org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,OrganisationType.CLASS_TYPE)); org.setOrganisationState((OrganisationState)service.findById(OrganisationState.class,OrganisationState.ACTIVE)); - org.setLocale(LangUtil.getSupportedLocale(langIsoCode, countryIsoCode)); + org.setLocale(LanguageUtil.getSupportedLocale(langIsoCode, countryIsoCode)); service.saveOrganisation(org, user.getUserId()); addMemberships(user,org); ExtCourseClassMap map = new ExtCourseClassMap(); @@ -169,7 +169,7 @@ user.setAuthenticationMethod((AuthenticationMethod)service.findById(AuthenticationMethod.class, AuthenticationMethod.DB)); user.setCreateDate(new Date()); user.setDisabledFlag(false); - user.setLocale(LangUtil.getSupportedLocale(userData[13], userData[12])); + user.setLocale(LanguageUtil.getSupportedLocale(userData[13], userData[12])); user.setFlashTheme(service.getDefaultFlashTheme()); user.setHtmlTheme(service.getDefaultHtmlTheme()); service.save(user); Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java,v diff -u -r1.3.2.3 -r1.3.2.4 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java 21 Sep 2007 02:15:32 -0000 1.3.2.3 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java 21 Sep 2007 03:49:27 -0000 1.3.2.4 @@ -53,7 +53,7 @@ import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; /** * @author jliew @@ -100,12 +100,12 @@ if (index>0) { String language = attribute.substring(0, index); String country = attribute.substring(index); - return LangUtil.getSupportedLocale(language, country); + return LanguageUtil.getSupportedLocale(language, country); } else { - return LangUtil.getSupportedLocale(attribute); + return LanguageUtil.getSupportedLocale(attribute); } } - return LangUtil.getDefaultLocale(); + return LanguageUtil.getDefaultLocale(); } public boolean createLDAPUser(Attributes attrs) { Fisheye: Tag 1.1.2.2 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/util/LangUtil.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java,v diff -u -r1.6 -r1.6.10.1 --- lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java 17 Sep 2006 06:14:17 -0000 1.6 +++ lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java 21 Sep 2007 03:49:27 -0000 1.6.10.1 @@ -23,9 +23,19 @@ /* $$Id$$ */ package org.lamsfoundation.lams.util; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.TimeZone; +import org.lamsfoundation.lams.usermanagement.SupportedLocale; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.web.util.HttpSessionManager; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + /** * Various internationalisation (internationalization) utilities. * @@ -37,7 +47,17 @@ public static final String DEFAULT_LANGUAGE = "en"; public static final String DEFAULT_COUNTRY = "AU"; public static final String DEFAULT_DIRECTION = "LTR"; - + private static IUserManagementService service; + + private static IUserManagementService getService() { + if (service == null) { + WebApplicationContext ctx = WebApplicationContextUtils + .getWebApplicationContext(HttpSessionManager.getInstance().getServletContext()); + service = (IUserManagementService) ctx.getBean("userManagementService"); + } + return service; + } + /** * Get the default language, country, based on entries in the * server configuration file. @@ -86,5 +106,54 @@ public static TimeZone getDefaultTimeZone() { return TimeZone.getDefault(); } + + /** + * Returns server default locale. + */ + public static SupportedLocale getDefaultLocale() { + String localeName = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); + return getSupportedLocale(localeName.substring(0,2),localeName.substring(3)); + } + + /** + * Searches for a locale based on language, then country, matching the single input string. + * Otherwise returns server default locale. + */ + public static SupportedLocale getSupportedLocale(String input) { + List list = getService().findByProperty(SupportedLocale.class, "languageIsoCode", input); + if (list!=null && list.size()>0) { + return (SupportedLocale)list.get(0); + } else { + list = getService().findByProperty(SupportedLocale.class, "countryIsoCode", input); + if (list!=null && list.size()>0) { + return (SupportedLocale)list.get(0); + } + } + return getDefaultLocale(); + } + + /** + * Finds a locale based on language and/or country. + */ + public static SupportedLocale getSupportedLocale(String langIsoCode, String countryIsoCode) { + SupportedLocale locale = null; + Map properties = new HashMap(); + if(countryIsoCode.trim().length()>0 && langIsoCode.trim().length()>0){ + properties.put("languageIsoCode", langIsoCode); + properties.put("countryIsoCode", countryIsoCode); + }else if(langIsoCode.trim().length()>0){ + properties.put("languageIsoCode", langIsoCode); + }else if(countryIsoCode.trim().length()>0){ + properties.put("countryIsoCode", countryIsoCode); + } + List list = getService().findByProperties(SupportedLocale.class, properties); + if(list!=null && list.size()>0){ + Collections.sort(list); + locale = (SupportedLocale)list.get(0); + }else{ + locale = getDefaultLocale(); + } + return locale; + } }