From a9d0c5d28530740a9006d46317a43009d3478d2d Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Fri, 14 Jul 2006 02:11:06 +0000 Subject: [PATCH] Let's make these work correctly... git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4266 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/as/com/threerings/util/MessageBundle.as | 20 ++++----- src/as/com/threerings/util/MessageManager.as | 43 +++----------------- 2 files changed, 14 insertions(+), 49 deletions(-) diff --git a/src/as/com/threerings/util/MessageBundle.as b/src/as/com/threerings/util/MessageBundle.as index d975096f7..2703e8423 100644 --- a/src/as/com/threerings/util/MessageBundle.as +++ b/src/as/com/threerings/util/MessageBundle.as @@ -23,6 +23,8 @@ package com.threerings.util { import mx.resources.ResourceBundle; +import mx.utils.StringUtil; + /** * A message bundle provides an easy mechanism by which to obtain * translated message strings from a resource bundle. It uses the {@link @@ -77,6 +79,8 @@ public class MessageBundle // if we have a parent, try getting the string from them if (_parent != null) { + trace("Trying to retrieve " + key + " from parent bundle: " + + _parent); var value :String = _parent.getResourceString(key, false); if (value != null) { return value; @@ -148,11 +152,12 @@ public class MessageBundle if (msg == null) { Log.getLog(this).warning("Missing translation message " + "[bundle=" + _path + ", key=" + key + "]."); + + // return something bogus + return (key + args); } - return (msg != null) ? - MessageFormat.format(escape(msg), args) - : (key + args); + return mx.utils.StringUtil.substitute(escape(msg), args); } /** @@ -384,12 +389,3 @@ public class MessageBundle protected static const QUAL_SEP :String = ":"; } } - -// TODO: figure out what we're going to do here -class MessageFormat -{ - public static function format (msg :String, ... rest) :String - { - return msg + rest; - } -} diff --git a/src/as/com/threerings/util/MessageManager.as b/src/as/com/threerings/util/MessageManager.as index 2d427514b..0ecb25e99 100644 --- a/src/as/com/threerings/util/MessageManager.as +++ b/src/as/com/threerings/util/MessageManager.as @@ -61,20 +61,11 @@ public class MessageManager * ResourceBundle#getBundle(String,Locale,ClassLoader)} for a more * detailed explanation of how resource bundle paths are resolved. */ - public function MessageManager ( - resourcePrefix :String, sysMgr :ISystemManager) + public function MessageManager (sysMgr :ISystemManager) { - // keep the prefix - _prefix = resourcePrefix; - // use the default locale _locale = Locale.getCurrent(sysMgr); - // make sure the prefix ends with a dot - if (_prefix.charAt(_prefix.length - 1) != ".") { - _prefix += "."; - } - // load up the global bundle _global = getBundle(GLOBAL_BUNDLE); } @@ -101,15 +92,6 @@ public class MessageManager _cache.clear(); } - /** - * Allows a custom classloader to be configured for locating - * translation resources. - */ -// public void setClassLoader (ClassLoader loader) -// { -// _loader = loader; -// } - /** * Fetches the message bundle for the specified path. If no bundle can * be located with the specified path, a special bundle is returned @@ -128,17 +110,12 @@ public class MessageManager } // if it's not cached, we'll need to resolve it - var fqpath :String = _prefix + path; var rbundle :ResourceBundle = null; try { -// if (_loader != null) { -// rbundle = ResourceBundle.getBundle(fqpath, _locale, _loader); -// } else { - rbundle = ResourceBundle.getResourceBundle(fqpath); -// } + rbundle = ResourceBundle.getResourceBundle(path); } catch (mre :Error) { Log.getLog(this).warning("Unable to resolve resource bundle " + - "[path=" + fqpath + "]."); + "[path=" + path + "]."); } // if the resource bundle contains a special resource, we'll @@ -153,12 +130,10 @@ public class MessageManager bundle = new clazz(); } - } catch (mre :Error) { - // nothing to worry about - } catch (t :Error) { - Log.getLog(this).warning("Failure instantiating custom message" + - " bundle [mbclass=" + mbclass + ", error=" + t + "]."); + Log.getLog(this).warning( + "Failure instantiating custom message bundle " + + "[mbclass=" + mbclass + ", error=" + t + "]."); } } @@ -176,15 +151,9 @@ public class MessageManager return bundle; } - /** The prefix we prepend to resource paths prior to loading. */ - protected var _prefix :String; - /** The locale for which we're obtaining message bundles. */ protected var _locale :Locale; - /** A custom class loader that we use to load resource bundles. */ -// protected var _loader :ClassLoader; - /** A cache of instantiated message bundles. */ protected var _cache :HashMap = new HashMap();