[loc-en-dev] ResourceBundle lookup candidate list and inheritance
Doug Felt
dougfelt at google.com
Tue Jul 20 19:17:27 PDT 2010
ResourceBundle.getBundle(String, Locale, ClassLoader) currently says that
the parent chain of a bundle is formed by truncation. The implementation
uses ResourceBundle.Control.INSTANCE which uses truncation in
getCandidateLocales().
We've been proposing that the default implementation of
ResourceBundle.Control special case getCandidateLocales for some Norwegian
and Chinese locales, so that both legacy and new Locales can access either
legacy or new resource data. This is documented in the locale enhancement
notes, see
http://sites.google.com/site/openjdklocale/design-notes/resource-bundle-lookup-order
This would imply that ResourceBundle.getBundle(String, Locale, ClassLoader)
cannot use the control-based implementation since the parent chain would not
match the candidate locale list generated by getCandidateLocales. How would
you resolve this?
Doug
On Tue, Jul 20, 2010 at 6:45 PM, Masayoshi Okutsu <
masayoshi.okutsu at oracle.com> wrote:
> On 7/15/2010 7:26 AM, Doug Felt wrote:
>
> Is this intended behavior?
>
>
> Yes, it is. Please refer to RFE 5102289 which is the umbrella for all the
> ResourceBundle enhancements in JDK6.
>
> It sounds broken to me.
>
>
> If so, the ResourceBundle API itself has been broken. I believe that the
> same thing can be done using ListResourceBundle without
> ResourceBundle.Control.
>
> Masayoshi
>
>
>
> Doug
>
> On Tue, Jul 13, 2010 at 12:24 PM, Yoshito Umaoka <y.umaoka at gmail.com>wrote:
>
>> For now, Java uses the same list for lookup and inheritance.
>>
>> For example, if you customize the lookup candidate list using
>> ResourceBundle.Control and produce locale list like - "fr", "de", ROOT, and
>> if all bundles exist, bundle_de will be the parent of bundle_fr, root bundle
>> will be the parent of bundle_de. In other words,
>> ResourceBundle#getObject(String key) will get a resource from bundle_de when
>> the resource is missing in bundle_fr, then if it does not exist in
>> bundle_de, try the root bundle.
>>
>> We probably cannot change the behavior, so we should consider this aspect
>> for designing special lookup order for Chinese/Norwegian locales.
>>
>> -Yoshito
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/locale-enhancement-dev/attachments/20100720/4efd9f11/attachment.html
More information about the locale-enhancement-dev
mailing list