- From: Mercurial notifier <nobody@w3.org>
- Date: Wed, 23 Jun 2010 10:04:07 -0400
- To: Unicorn Updates <www-validator-cvs@w3.org>
changeset: 1293:ab6c3107617a parent: 1290:95043a9f2846 user: Thomas Gambet <tgambet@w3.org> date: Tue Jun 22 16:21:46 2010 -0400 files: src/org/w3c/unicorn/util/Language.java description: fixed: in specific cases Unicorn resolved language to zh_Hans instead of zh diff -r 95043a9f2846 -r ab6c3107617a src/org/w3c/unicorn/util/Language.java --- a/src/org/w3c/unicorn/util/Language.java Tue Jun 22 09:56:55 2010 -0400 +++ b/src/org/w3c/unicorn/util/Language.java Tue Jun 22 16:21:46 2010 -0400 @@ -12,6 +12,8 @@ import java.util.Properties; import java.util.TreeMap; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.velocity.VelocityContext; import org.w3c.unicorn.Framework; import org.w3c.unicorn.action.LanguageAction; @@ -28,6 +30,7 @@ private static LocaleMatcher uiLocaleMatcher; private static LocaleMatcher availableLocaleMatcher; private static LocaleMatcher installedLocaleMatcher; + public static Log logger = LogFactory.getLog(Language.class); public static void reset() { defaultLocale = null; @@ -83,21 +86,33 @@ } public static ULocale getLocale(String languageCode) { + logger.debug("languageCode: " + languageCode); if (languageCode == null) return Language.defaultLocale; - return installedLocaleMatcher.getBestMatch(languageCode); + ULocale resolved = installedLocaleMatcher.getBestMatch(languageCode); + logger.debug("resolved installed locale: " + resolved.getBaseName()); + return resolved; } public static ULocale getUILocale(String languageCode) { + logger.debug("languageCode: " + languageCode); if (languageCode == null) return Language.defaultLocale; - return uiLocaleMatcher.getBestMatch(languageCode); + ULocale resolved = uiLocaleMatcher.getBestMatch(languageCode); + logger.debug("resolved UI locale: " + resolved.getBaseName()); + return resolved; } public static ULocale getAvailableLocale(String languageCode) { + logger.debug("languageCode: " + languageCode); if (languageCode == null) return Language.defaultLocale; - return availableLocaleMatcher.getBestMatch(languageCode); + ULocale resolved = availableLocaleMatcher.getBestMatch(languageCode); + // for some reason the LocaleMatcher will sometimes return zh_Hans instead of zh resulting in a wrong language resolving + if (resolved.getName().equals("zh_Hans")) + resolved = availableLocaleMatcher.getBestMatch(resolved.getName()); + logger.debug("resolved available locale: " + resolved.getBaseName()); + return resolved; } public static VelocityContext getContext(ULocale localeParam) {
Received on Wednesday, 23 June 2010 14:07:06 UTC