On m’a récemment demandé comment faire pour gérer la localisation des vocabulaires dans l’application au lieu d’utiliser les fichiers d’internationalisation déployés avec le reste de la configuration. À ma grande surprise, c’est possible depuis la version 6.0. Cette fonctionnalité est vraiment passée inaperçu et très peu de personnes la connaissent (au moins je n’étais pas le seul chez Nuxeo à l’ignorer !).
Les vocabulaires sont des tables de consultation que vous pouvez utiliser avec des widgets de suggestion dans Nuxeo Platform.
Widget de suggestion
Chaque entrée est généralement composée d’une clé et d’une étiquette, mais si vous avez des utilisateurs dans plusieurs langues, vous aurez certainement envie que les étiquettes soient localisées pour chacune de ces langues. Comme ce n’est vraiment pas marrant de mettre à jour la configuration pour seulement ajouter/changer une entrée et ses traductions, Nuxeo Content Services Platform vous permet de le faire directement dans l’application et vous propose également un endpoint d’API pour le faire. Mais vous devez commencer par configurer le vocabulaire.
En fait, le terme vocabulaire désigne un concept abstrait plus générique appelé répertoire. La première étape de configuration d’un nouveau répertoire est de créer un schéma contenant un paramètre pour chaque langue à supporter. Nous allons utiliser l’anglais, le français, l’espagnol et l’allemand dans notre exemple.
<xs:schema targetnamespace="http://www.nuxeo.org/ecm/schemas/customl10nxvocabulary" xmlns:xs="http://www.w3.org/2001/XMLSchema"></xs:schema>
Notez que le même schéma peut être réutilisé pour plusieurs vocabulaires. Il faut ensuite associer notre répertoire avec le point d’extension correspondant.
`
`
C’est suffisant pour nous permettre d’utiliser l’endpoint d’API Directory pour récupérer, ajouter, mettre à jour ou supprimer des entrées dans notre nouveau répertoire customl10ncoverage. Plutôt facile, non ?
Configuration de l’API Nuxeo
Par ailleurs, le vocabulaire peut également être utilisé avec le widget de suggestion dans l’interface utilisateur. On peut voir ci-dessous que les étiquettes sont localisées lorsque l’on change les informations régionales de l’utilisateur.
Widget de suggestion avec étiquettes localisées (anglais)
Widget de suggestion avec étiquettes localisées (allemand)
La configuration du widget avec Nuxeo Studio est incroyablement facile. Il suffit d’utiliser le widget suggestOneDirectory avec un paramètre de type chaîne, de définir le nom du vocabulaire (avec un paramètre personnalisé) et de s’assurer que les paramètres localize et Activate database localization sont activés.
Éditeur de widget dans Nuxeo Studio
Allons encore un peu plus loin et faisons en sorte que le vocabulaire puisse être géré depuis le centre d’administration. Pour ce faire, il faut définir une organisation et l’enregistrer.
Éditeur de vocabulaire dans l’Admin Center
Enfin, rien n’est gravé dans le marbre et vous pouvez tout à fait ajouter d’autres langues ultérieurement en mettant à jour le schéma et l’organisation dans le centre d’administration. Cet exemple est disponible en intégralité dans notre référentiel GitHub.