Looks like the loadBundle tag does not get processed during Ajax requests so the bundle messages are never updated even when the Locale for the view root is validly changed. After doing some research and fiddling with the test case, I've adjusted ICE-3500 regression test by:
- removing the f:loadBundle and adding the following to the faces-config.xml file:
<resource-bundle>
<base-name>org.icefaces.qa.test.beans.messages</base-name>
<var>msgs</var>
</resource-bundle>
From my research it appears that f:loadBundle was never really suited for supporting dynamic changes, particularly during Ajax requests. Other frameworks (including ICEfaces) came up with their own loadBundle tags to help remedy this. The changes I've made are completely valid (and recommended) as a technique for supporting dynamic changes and work in both MyFaces and Mojarra. The ICE-2763 case is more complex but I'll try and apply a similar change there.
I've adjusted the test case for
ICE-2763in much the same way that I did forICE-3500. The ice:loadBundle tags I didn't adjust, just the f:loadBundle. I also changed the bean to the setting of the Locale where necessary:FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(locale));
Both cases now work in both Mojarra and MyFaces.