Sorry for the confusion.

If I open the en_US bundle, the iterator returns nothing at all because the
collection is empty.


On 8/17/10 5:17 AM, "David Zülke" <david.zue...@bitextender.com> wrote:

> 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
>> 
>> 
> 

Reply via email to