Comme je n'aime pas les techniques qui ne permettent pas au navigateur de mettre en cache les chaînes localisées, j'ai utilisé la technique suivante pour localiser les alertes JavaScript, etc. Cette technique semble bien adaptée si les chaînes de caractères dont vous avez besoin dans votre code JavaScript sont différentes de celles dont le serveur Web a besoin :
<h:head>
<h:outputScript library="javascript" name="#{fw.JsFwStrings}" />
...
J'attribue ensuite la chaîne de ressource JsFwStrings au nom de fichier du fichier JavaScript définissant les chaînes localisées pour la langue donnée.
Par exemple, le fichier fw_en.properties contient l'entrée suivante JsFwStrings=JsFwStrings_fr.js
Et le fichier JsFwStrings_fr.js contient
var TosFramework = TosFramework || {};
TosFramework.Strings = {
UnSavedChangesWarning : 'You have unsaved changes.',
CancelConfirmQuestion : 'Are you sure you want to cancel?'
}