in tapestry-framework/src/org/apache/tapestry/engine/DefaultComponentMessagesSource.java [96:173]
private Properties assembleProperties(IResourceLocation baseResourceLocation, Locale locale)
{
boolean debug = LOG.isDebugEnabled();
if (debug)
LOG.debug("Assembling properties for " + baseResourceLocation + " " + locale);
String name = baseResourceLocation.getName();
int dotx = name.indexOf('.');
String baseName = name.substring(0, dotx);
String language = locale.getLanguage();
String country = locale.getCountry();
String variant = locale.getVariant();
Properties parent = (Properties) _cache.get(baseResourceLocation);
if (parent == null)
{
parent = readProperties(baseResourceLocation, baseName, null, null);
if (parent == null)
parent = _emptyProperties;
_cache.put(baseResourceLocation, parent);
}
Properties result = parent;
if (!Tapestry.isBlank(language))
{
Locale l = new Locale(language, "");
MultiKey key = buildKey(baseResourceLocation, l);
result = (Properties) _cache.get(key);
if (result == null)
result = readProperties(baseResourceLocation, baseName, l, parent);
_cache.put(key, result);
parent = result;
}
else
language = "";
if (Tapestry.isNonBlank(country))
{
Locale l = new Locale(language, country);
MultiKey key = buildKey(baseResourceLocation, l);
result = (Properties) _cache.get(key);
if (result == null)
result = readProperties(baseResourceLocation, baseName, l, parent);
_cache.put(key, result);
parent = result;
}
else
country = "";
if (Tapestry.isNonBlank(variant))
{
Locale l = new Locale(language, country, variant);
MultiKey key = buildKey(baseResourceLocation, l);
result = (Properties) _cache.get(key);
if (result == null)
result = readProperties(baseResourceLocation, baseName, l, parent);
_cache.put(key, result);
}
return result;
}