PnX-SI/GeoNature

V2 - Multilingue

Closed this issue · 7 comments

Prévoir dès le début de la V2, la gestion du multilingue même si on utilise que le FR dans un premier temps en intégrant des variables en anglais dans le texte qui font référence à des fichiers de langue (.po).

  • Côté serveur (Flask-Babel) ou côté client (AngularJS) ?
  • Paramètre au niveau global d'une instance de GeoNature ? Au niveau de chaque utilisateur (idéal mais nécessite des évolutions de UsersHub) ? En fonction de langue du navigateur (assez incertain) ? Avec un bouton permettant à l'utilisateur de switcher entre les langues ?

L'aire protégée Alpi Marittime regroupant les parcs italiens Alpi Marittime et Marguareis est potentiellement intéressée par la version V2 de Geonature. L'intérêt de la gestion du multilingue est fort et sera un argument important dans le choix d'un outil de saisie pour cette structure, partenaire du parc national du Mercantour.

Pour le moment, c'est géré dans les premiers développements de la V2 au niveau de l'interface.
Il y a un fichier par langue pour tous les labels et messages du FRONT : https://github.com/PnX-SI/GeoNature/tree/master/frontend/src/assets/i18n

A voir comment on gère l'affichage. Cela peut être en conf, en fonction de l'utilisateur connecté avec une info venant de la BDD (à ajouter dans UsersHub le cas échéant), ou automatiquement en fonction de la langue du navigateur de l'utilisateur.

Le multilingue n'est pas géré au niveau de la BDD, on ne peut pas avoir de traduction des typologies pour chaque langue.

J'aime bien l'idée de préciser l'information de la langue dans UsersHub, c'est plus propre que de passer par la langue du navigateur.

Pour le gérer aussi dans la BDD, on a commencé à créer des champs label_fr, label_en, label_it, label_es, description_fr, description_en...

Le problème rencontré est que du coup on ne peut pas mettre ces champs en NOT NULL car on ne sait pas lesquels seront remplis.

Du coup on réfléchit à ajouter un champs label_default en NOT NULL qui serait correspondrait à la langue par défaut des settings ?

Pour le multilingue de l'interface on utilise : https://github.com/ngx-translate/

Le sujet est en place. Les améliorations font l'objet de ticket spécifiques :
#266
#267