Interface Diacamma en anglais sur une installation YunoHost malgré le choix de la langue française

Je poste ce retour d’expérience au cas où d’autres rencontreraient le même symptôme — la cause n’était pas évidente à identifier et se situe en dehors de Diacamma lui-même.

Le contexte

  • VPS OVHcloud sous Debian 12 Bookworm (image standard)
  • YunoHost 12.1.41 par-dessus
  • Paquet diacamma_ynh (version 26.07.29.14~ynh1), Diacamma Syndic, langue fr sélectionnée dans le formulaire d’installation

Le symptôme

L’interface sort en anglais, mais pas entièrement : les boutons du client JS (PRÉCÉDENT / SUIVANT) sont bien en français, tout le reste est en anglais. Les menus (GENERAL, CONDOMINIUM, FINANCIAL…), les libellés du wizard, et surtout les données créées à l’initialisation : les journaux comptables (“Last year retained”, “spending”, “revenue”), les messages mail par défaut (“Welcome…”, “Regards”).

Ce qui n’était PAS le problème (pour vous éviter les mêmes impasses)

  • Le paramétrage YunoHost : yunohost app setting diacamma language renvoyait bien fr
  • Le settings.py de l’instance : LANGUAGE_CODE = "fr" correctement présent
  • Django lui-même : LANGUAGE_CODE à fr, USE_I18N à True, et le français bien présent dans LANGUAGES
  • Les fichiers de traduction : les .mo français étaient bien là
  • Le navigateur : il envoyait Accept-Language: fr-FR,fr;q=0.9
  • Un paramètre de langue dans l’appli : il n’y en a pas, la langue est gérée uniquement par le middleware Django

Et pourtant le serveur répondait Content-Language: en.

La cause

L’image Debian d’OVH est livrée sans aucune locale française générée. Or Lucterios, en plus d’activer la traduction Django, appelle setlocale() sur fr_FR.UTF-8 — appel qui échoue, et le code retombe alors sur un repli en anglais. Résultat : le français est activé puis immédiatement écrasé, et seul le client JS (qui a ses propres traductions) reste en français.

La solution

Il s’agit simplement de générer la locale fr_FR.UTF-8 au niveau du système, ce que les images Debian de VPS ne font pas par défaut (elles sont livrées en C.UTF-8 ou en_US.UTF-8). Les commandes ci-dessous installent le paquet locales, décommentent la ligne fr_FR.UTF-8 dans /etc/locale.gen, génèrent la locale, puis redémarrent l’application pour qu’elle en bénéficie. À adapter si vous êtes sur une autre distribution, le principe reste le même.

bash

apt install -y locales
sed -i 's/^# *fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
systemctl restart diacamma

Vérification : locale -a | grep fr_FR doit renvoyer fr_FR.utf8.

Important : à faire AVANT l’installation

Dans mon cas, l’interface est bien repassée en français après coup, mais les données créées à l’initialisation de l’instance (journaux comptables, messages mail par défaut) restaient en anglais en base. J’ai dû désinstaller et réinstaller l’application pour repartir propre.

Donc si vous montez une instance sur un VPS Debian : générez la locale fr_FR.UTF-8 avant d’installer Diacamma.

1 « J'aime »

Merci de ce retour.
Je prépare une correction du package Yunohost avec la prochaine version qui devrait arriver courant de ce mois.