That still doesn't explain the problem clearly.

You said you have a root file, and an empty en_US extending from it?

If you now open the en_US bundle and iterate over it, does the iterator
a) not return anything at all, i.e. because the collection is empty, or
b) iterate over the correct number of entries (with correct keys maybe?), but 
just not return the corresponding values?

b) would be a relatively trivial fix, a) is a bit more work

- David



On 17.08.2010, at 13:13, Joel Sahleen wrote:

> Sorry about the double message. I was using Nabble and it didn't seem to
> post correctly. Values are null when iterating in the sense that if you have
> an empty bundle, there is no fallback.
> 
> As I said this isn't immediately necessary for my project, but the expected
> behavior would seem to be that iteration should work over all contents,
> including fallbacks. I understand why that might be difficult to implement,
> however. At very least a note should be added explaining that iteration will
> not work with fallback. I'm afraid I will have developers trying to do that
> if they just go by the documentation.
> 
> Joel
> 
> 
> On 8/17/10 5:02 AM, "David Zülke" <david.zue...@bitextender.com> wrote:
> 
>> That seems to be a bug.
>> 
>> Among other things, resourcebundle_iterator_read calls
>> resourcebundle_extract_value instead of resourcebundle_array_get (which
>> handles fallbacks via resourcebundle_array_fetch).
>> 
>> I'm not sure if the fix is that simple though, as that only fixes getting of
>> values, but the iterated range probably still doesn't include the fallback
>> values. What would the expected behavior be for iterators? Should it iterate
>> over all contents, including fallbacks? You sent another message to the list
>> earlier which appears to be describing a similar, but different problem where
>> values are null when iterating?
>> 
>> - David
>> 
>> 
>> 
>> On 16.08.2010, at 23:05, Joel Sahleen wrote:
>> 
>>> All,
>>> 
>>> I am working on a large-scale internationalization project that use the intl
>>> extension. I am storing localized strings in ICU resource bundles and
>>> accessing them via the intl ResourceBundle class. Part of my project relies
>>> on the fallback functionality of the ResourceBundle class. I have put all 
>>> the
>>> US English strings (base language) in the root bundle and created an empty
>>> bundle for en_US as suggested in the ICU guide. That way if any string is
>>> missing in the localized bundles, everything automatically falls back to US
>>> English.
>>> 
>>> Fallback works great if I use the ResourceBundles get method, or if I use
>>> array access (e.g., $bundle->get(ŒKEY¹) or $bundle[ŒKEY¹]), but if I try to
>>> iterate over the en_US bundle¹s content with foreach, it returns a null
>>> result because the bundle is empty. Is there any way to support fallback 
>>> when
>>> using iteration? It¹s not absolutely necessary for my project, but it seems
>>> that if the class is going to offer iteration support, that functionality
>>> should also support the fallback functionality.
>>> 
>>> Thanks for the help.
>>> 
>>> Joel Sahleen
>>> Software Engineer
>>> Adobe Systems
>> 
> 
> 
> --
> PHP Unicode & I18N Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to