Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserAction.java =================================================================== diff -u -re250eb2937a65729d87cc30e6a46b4d4fb82c13a -r6af1dca405b378528e883a2853703bbf75e7d68c --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserAction.java (.../UserAction.java) (revision e250eb2937a65729d87cc30e6a46b4d4fb82c13a) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserAction.java (.../UserAction.java) (revision 6af1dca405b378528e883a2853703bbf75e7d68c) @@ -224,7 +224,7 @@ } request.setAttribute("locales", locales); - request.setAttribute("countryCodes", LanguageUtil.getCountryCodes()); + request.setAttribute("countryCodes", LanguageUtil.getCountryCodes(false)); request.setAttribute("authenticationMethods", authenticationMethods); return mapping.findForward("user"); Index: lams_central/src/java/org/lamsfoundation/lams/web/ProfileAction.java =================================================================== diff -u -r74a2b3a59c65dff1bd5bf94988fa6fb9ae24160a -r6af1dca405b378528e883a2853703bbf75e7d68c --- lams_central/src/java/org/lamsfoundation/lams/web/ProfileAction.java (.../ProfileAction.java) (revision 74a2b3a59c65dff1bd5bf94988fa6fb9ae24160a) +++ lams_central/src/java/org/lamsfoundation/lams/web/ProfileAction.java (.../ProfileAction.java) (revision 6af1dca405b378528e883a2853703bbf75e7d68c) @@ -242,7 +242,7 @@ userForm.set("localeId", locale.getLocaleId()); request.setAttribute("locales", locales); - request.setAttribute("countryCodes", LanguageUtil.getCountryCodes()); + request.setAttribute("countryCodes", LanguageUtil.getCountryCodes(false)); themeService = getThemeService(); Index: lams_central/src/java/org/lamsfoundation/lams/web/action/SignupAction.java =================================================================== diff -u -r74a2b3a59c65dff1bd5bf94988fa6fb9ae24160a -r6af1dca405b378528e883a2853703bbf75e7d68c --- lams_central/src/java/org/lamsfoundation/lams/web/action/SignupAction.java (.../SignupAction.java) (revision 74a2b3a59c65dff1bd5bf94988fa6fb9ae24160a) +++ lams_central/src/java/org/lamsfoundation/lams/web/action/SignupAction.java (.../SignupAction.java) (revision 6af1dca405b378528e883a2853703bbf75e7d68c) @@ -42,7 +42,7 @@ signupService = (ISignupService) wac.getBean("signupService"); } - request.setAttribute("countryCodes", LanguageUtil.getCountryCodes()); + request.setAttribute("countryCodes", LanguageUtil.getCountryCodes(true)); DynaActionForm signupForm = (DynaActionForm) form; String method = WebUtil.readStrParam(request, "method", true); Index: lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java =================================================================== diff -u -r74a2b3a59c65dff1bd5bf94988fa6fb9ae24160a -r6af1dca405b378528e883a2853703bbf75e7d68c --- lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java (.../LanguageUtil.java) (revision 74a2b3a59c65dff1bd5bf94988fa6fb9ae24160a) +++ lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java (.../LanguageUtil.java) (revision 6af1dca405b378528e883a2853703bbf75e7d68c) @@ -192,13 +192,19 @@ /** * Get list of all available country names sorted alphabetically. + * + * @parama enforceUsingDefaultLocale in some rare cases (like with SignupAction) it's useful to enforce using LAMS + * server's default locale, instead of the system default one */ - public static Map getCountryCodes() { + public static Map getCountryCodes(boolean enforceUsingDefaultLocale) { getMessageService(); + SupportedLocale lamsDefaultLocale = enforceUsingDefaultLocale ? LanguageUtil.getDefaultLocale() : null; Map countryCodesMap = new HashMap(); for (String countryCode : CommonConstants.COUNTRY_CODES) { - String countryName = messageService.getMessage("country." + countryCode); + String countryName = enforceUsingDefaultLocale + ? messageService.getMessage("country." + countryCode, lamsDefaultLocale) + : messageService.getMessage("country." + countryCode); countryCodesMap.put(countryCode, countryName); } Index: lams_common/src/java/org/lamsfoundation/lams/util/MessageService.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r6af1dca405b378528e883a2853703bbf75e7d68c --- lams_common/src/java/org/lamsfoundation/lams/util/MessageService.java (.../MessageService.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_common/src/java/org/lamsfoundation/lams/util/MessageService.java (.../MessageService.java) (revision 6af1dca405b378528e883a2853703bbf75e7d68c) @@ -23,6 +23,9 @@ package org.lamsfoundation.lams.util; +import java.util.Locale; + +import org.lamsfoundation.lams.usermanagement.SupportedLocale; import org.springframework.context.MessageSource; import org.springframework.context.NoSuchMessageException; import org.springframework.context.i18n.LocaleContextHolder; @@ -71,7 +74,26 @@ } return message; } + + /** + * The same as getMessage(String key) but allows specifying locale in which to do a loockup. + * + * @param key + * @param supportedLocale + * @return + */ + public String getMessage(String key, SupportedLocale supportedLocale) { + Locale locale = new Locale(supportedLocale.getLanguageIsoCode(), supportedLocale.getCountryIsoCode()); + String message; + try { + message = messageSource.getMessage(key, null, locale); + } catch (NoSuchMessageException e) { + message = "??" + key + "??"; + } + return message; + } + /** * @see org.springframework.context.support.MessageSourceAccessor#getMessage(java.lang.String, java.lang.String) * @param key