ADF : internationalisation ViewController et Model

La gestion de l’internationalisation dans ADF est très intégrée. Toutefois, il y a un ou deux détails qu’il faut connaitre pour accéder à toutes les capacités de ce mécanisme.
En général, chaque projet dispose de ses capacités d’internationalisation. Le projet model représente la base de données via les Entities, les View Objects et les Data Control.
Dans le faces-config.xml (dans webContent/WEB-INF) de ce projet il faut déjà déclarer quelles sont les langues supportées et quelle est la langue par défaut comme ceci :

 <locale-config>
<default-locale>en</default-locale>
<supported-locale>fr</supported-locale>
</locale-config>

la langue par défaut sera Anglais (en) et le français (fr) est supporté.
Il faut donc disposer de 2 fichiers bundle : modelBundle_en.properties et modelBundle_fr.properties
Cette configuration doit être répétée dans le ViewController.
Nous aurons donc 2 autres fichiers : ViewControllerBundle_en.properties et ViewControllerBundle_fr.properties
Il est possible de supporter plus ou moins de langues d’un projet à l’autre, si la langue demandée pour le projet n’est pas reconnue, la langue par défaut sera appliquée.
A ce stade, si le projet complet est déployé, il n’est pas fonctionnel à 100%. La partie Model ne semble pas gérer les langues !
Il manque donc une étape :
Affecter le lien entre le ViewController et le bundle du Model !!!
Les étapes sont très simples :

  • Clic-droit sur le projet ViewController,
  • Ouvrir les propriétés,
  • Aller au menu Resource Bundle
  • Ouvrir le sous menu (onglet) Bundle search
  • et ajouter le bundle du Model que l’on souhaite utiliser !

Attention, pour l’exemple courant c’est donc le bundle : model_bundle.properties que l »on ajoute, ADF se chargera d’aller chercher celui qui correspond à la langue demandée
Il reste à déployer et profiter de la présentation internationale en direct depuis les paramètres du navigateur !