Bonsoir Johan,

> Le 10 nov. 2021 à 22:52, Johan Cwiklinski <[email protected]> a écrit :
> 
> Salut,
> 
> Le 10/11/2021 à 20:27, Thierry Marc a écrit :
>> Bonjour,
>> 
>> sur Galette 9.0.5.1, environnement PHP 7.4.18/nginx/Synology DSM7.
>> 
>> L’histoire :
>> J’essaie d’ajouter un adhérent : formulaire rempli, je clique sur 
>> Enregistrer, et j’obtiens une page blanche (URL /member/store )
>> Sur ce, je vais dans les logs, et je m’aperçois que j’ai toujours le mode 
>> DEV et que donc : «  Database version not checked in DEV mode » . OK, je 
>> suis un idiot.
>> 
>> Je commente la définition de DEV dans behavior.inc.php , et là : «  Galette 
>> requiert une mise à jour ! ».
>> OK, je vais à http://ds.local:8033/installer.php .
>> 
>> Problème : 
>> La page affichée ne contient qu’un cadre « Installation de Galette - 
>> Vérifications » ainsi que le petit sélecteur de langue (qui ne fonctionne 
>> pas).
>> Rien d’autre.
>> 
>> Log de nginx : 
>> ——
>> 2021/11/10 20:20:58 [error] 13106#13106: *20618 FastCGI sent in stderr: "PHP 
>> message: PHP Fatal error:  Uncaught ErrorException: Undefined index: 
>> language in /volume1/Galette/lib/Galette/Core/I18n.php:298
> 
> Ça m'évoque une extension PHP manquante. L'extension "intl" est elle
> bien présente et active ?
> 
> Tu peux normalement vérifier sur http://ds.local:8033/compat_test.php 
> <http://ds.local:8033/compat_test.php>

Oui, intl est bien chargée.
La seule extension qui me manque est tidy .

> 
>> A priori il y a un souci avec la langue « ar » . [...]
> 
> Je pense que c'est juste la première dans la liste.
Oui j’ai pensé aussi, mais je ne sais pas l’enlever pour voir si ça plante plus 
loin. Désolé.

> 
> Il y a peut-être aussi une différence entre les langues disponibles sur
> un OS "standard" et un synology, je n'ai pas ce genre de matériel, je ne
> peux pas tester.
> locale -a
C
cs_CZ.utf8
da_DK.utf8
de_DE.utf8
en_US.utf8
es_ES.utf8
fr_FR.utf8
hu_HU.utf8
it_IT.utf8
ja_JP.utf8
ko_KR.utf8
nb_NO.utf8
nl_NL.utf8
pl_PL.utf8
POSIX
pt_BR.utf8
pt_PT.utf8
ru_RU.utf8
sv_SE.utf8
th_TH.utf8
tr_TR.utf8
zh_CN.utf8
zh_TW.utf8

Voilà :)

> 
> Dans le fichier I18n.php, tu peux essayer à la ligne incriminée de mettre :
> 'shortname' => $parsed_lang['language'] ?? '',

Fantastique ! Rapide et efficace, merci beaucoup :)

> 
> Mais je crains que ça ne vienne à foirer plus loin :/
> 

Pour le moment tous mes tests sont OK.
Bravo.

Dis-moi si tu souhaites modifier le code différemment ?
Ou si tu vas introduire ce diff dans main pour ne pas me re-planter à la 
prochaine mise à jour :)

Cordialement
Thierry

Répondre à