Pessoal,
estava cá estudando pelo Core JavaServer Faces e me veio testar o h:outputFormat com locale.
A ideia é usar o h:outputFormat com uma mensagem localizada e um parâmetro. Por default, a aplicação usa locale pt_BR, mas muda para en_US quando o usuário faz login.
No .xhtml:
<f:view locale="#{usuarioLogado != null ? usuarioLogado.locale : ''}">
<h:outputFormat value="#{msgs.msgFormat}">
<f:param value="aprender JSF" />
</h:outputFormat>
</f:view>
Quando acesso a página na primeira vez, com usuário deslogado, a mensagem, em pt_BR, é formatada corretamente. Daí faço login e acesso novamente a página, mas dessa vez a mensagem, em en_US, não é formatada(o {0} não é preenchido).
É como se, no segundo acesso, não houvesse mais o f:param, ou ele não fosse reavaliado...
O código encontra-se em:
O resto do código é basicamente o que é desenvolvido no decorrer deste curso.