Moodle 3.8+ Problème avec paquetage langues

Moodle 3.8+ Problème avec paquetage langues

par Christine TUFFENIS-LACROIX,
Nombre de réponses : 6

Re-bonjour à tous!


Voilà, j'ai bien installé la version Moodle 3.8+ et je viens de rencontrer un 1er problème en voulant accéder à la personnalisation de la langue. Voici l'erreur que j'obtiens:



J'ai trouvé sur le forum des erreurs de lecture de base de données liées à l'interclassement. mais après vérification de mes bases, elles sont bien en utf8mb4_unicode_ci.

Je ne sais pas trop où chercher maintenant.


Merci pour votre aide.

Christine
Moyenne des évaluations  -
En réponse à Christine TUFFENIS-LACROIX

Re: Moodle 3.8+ Problème avec paquetage langues

par Christine TUFFENIS-LACROIX,
Bonjour,

Toujours bloquée sur mon paquetage de langues....
Voici ce que j'obtiens en mode débugage:

Info de débogage Duplicate entry 'fr-103-reusecontent' for key 'mdl_toolcust_lancomstr_uix'
INSERT INTO mdl_tool_customlang (lang,componentid,stringid,original,master,timemodified,outdated,local,timecustomized) VALUES(?,?,?,?,?,?,?,?,?)
[array (
0 => 'fr',
1 => '103',
2 => 'reusecontent',
3 => 'Reuse Content',
4 => 'Reuse Content',
5 => 1576229505,
6 => 0,
7 => NULL,
8 => NULL,
)]
Error code: dmlwriteexception
Trace de la pile

line 489 of /lib/dml/moodle_database.php: dml_write_exception thrown
line 1331 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
line 1377 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
line 191 of /admin/tool/customlang/locallib.php: call to mysqli_native_moodle_database->insert_record()
line 60 of /admin/tool/customlang/index.php: call to tool_customlang_utils::checkout()

Comment est-ce que je peux me sortir de cette erreur ? Je dois faire des modifications directement dans la base????  Je tremble....
Merci par avance.

Christine
En réponse à Christine TUFFENIS-LACROIX

Re: Moodle 3.8+ Problème avec paquetage langues

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour Christine,

Quand tu dis que tes bases sont bien en utf8mb4_unicode_ci, es-tu bien certaine que c'est également le cas des tables, ainsi que des colonnes et leurs contenus ?

Tu devrais trouver des informations utiles dans cette discussion à propos du support UTF8 complet ainsi que la documentation dédiée.

Séverin
En réponse à Séverin Terrier

Re: Moodle 3.8+ Problème avec paquetage langues

par Christine TUFFENIS-LACROIX,
Bonjour Séverin,

Oui je viens de vérifier les tables.
Et tout le serveur est configuré en urtf8mb4_unicode_ci
J'ai trouvé la description exacte de la même erreur dans de vieux posts sur moodle anglais mais j'ai un problème avec les différentes réponses....je ne comprends pas comment on passe du problème à la solution!
https://moodle.org/mod/forum/discuss.php?d=222815
https://moodle.org/mod/forum/discuss.php?d=219504
Si je suis la logique (en tous cas ce que j'ai compris), il faudrait que j'identifie à quoi correspond "103-reusecontent" et encore, je ne suis pas sûre d'arriver à aller plus loin. je suis vraiment plantée! triste
Merci pour ton aide.
En réponse à Christine TUFFENIS-LACROIX

Re: Moodle 3.8+ Problème avec paquetage langues

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Christine,

le problème que tu rencontres vient du fait que dans la table mdl_tool_customlang, une chaine de caractère pour le champ stringid contient une majuscule. Moodle veut insérer "reusecontent", et refuse car cela ferait doublon avec "Reusecontent" !
Il faut donc accéder à la base de données et modifier cette ligne pour enlever l'erreur.

Rends-toi dans la table mdl_tool_customlang, et recherche dans cette table la chaine "Reusecontent" dans le champ stringid (soit par une requête, soit en faisant défiler, mais attention, y'en a des lignes !!! :D). Vérifie que c'est la bonne ligne en regardant d'abord le champ componentid qui doit correspondre à 103 dans ton cas.
Quand tu l'auras trouvé, modifie la valeur dans le champ stringid en mettant "reusecontent". N'oublie pas de purger d'abord ton cache Moodle avant de retourner sur l'outil de personnalisation de la langue.

Si tu n'arrives toujours pas à accéder à la personnalisation, cela signifie alors qu'il y a encore quelque part une valeur dans le champ stringid qui contiendrait une majuscule. Ça peut arriver si le composant 103, chez toi, est un plugin tiers par exemple. Il peut y avoir plusieurs chaines concernées.

Olivier
Moyenne des évaluations Utile (5)
En réponse à Olivier Valentin

Re: Moodle 3.8+ Problème avec paquetage langues

par Christine TUFFENIS-LACROIX,
Bonjour Olivier!
S'il y avait une mention très, très,très utile....je l'aurais choisie! clin d’œil

En fait, j'ai bien essayé de faire ça depuis ce matin mais le filtre sur la table ne trouvait pas 'reusecontent'! Et ma timidité m'a empêchée d'aller plus loin. J'ai donc suivi tes explications: componentid ID103, puis j'ai descendu toutes les lignes et...j'ai trouvé la majuscule en question! 'reuseContent' que j'ai remplacé par 'reusecontent et ça marche!

Merci, merci, merci!
Christine
En réponse à Olivier Valentin

Re: Moodle 3.8+ Problème avec paquetage langues

par Stéphane BERNIER,
Avatar Moodleurs particulièrement utiles

Bonjour,

Merci pour ces indications utiles !

Pour ma part, j'ai commencé par corriger pour le reusecontent qui me bloquait également. La manipulation a fonctionné, mais j'ai ensuite eu une série d'erreurs similaires pour diverses lignes avec un stringid contenant une majuscule.
J'ai donc d'abord tenté de tout repasser en minuscules avec une requête, mais j'ai eu encore d'autres erreurs de doublons. Comme s'il essayait d'insérer à nouveau toutes les valeurs déjà existantes.

Pour en finir rapidement, j'ai donc opté pour une solution un peu radicale : supprimer toutes les lignes de la table avec une valeur local à null (histoire de conserver uniquement les modifications apportées au paquetage).

Au chargement du paquetage, tout s'est bien passé et Moodle a recréé les lignes dans la table.

Si ça peut vous aider...

Moyenne des évaluations Utile (2)