a4j:loadBundle allows to use reference to bundle messages during the Ajax re-rendering. a4j:loadBundle is a substitution for the f:loadBundle in JSF 1.1 which is not originally a JSF component. f:loadBundle is a jsp tag that loads the bundle messages into the request scope when page is rendered. As soon as each Ajax request works in own request scope, the bundles loaded with f:loadBundle are unavailable.

Instead of f:loadBundle that might be located anywhere on the page, the a4j:loadBundle should be declared inside the f:view (this does not matter in case of using Facelets)

JSF 1.2 introduces the bundle registered in the faces-config.xml. This fixes the problem with f:loadBundle. Therefore, you can use this JSF 1.2 way to declare your bundles.