Wiktionnaire:Questions techniques/octobre 2016

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.
Sauter à la navigation Sauter à la recherche

Page mensuelle des questions techniques posées en octobre 2016. Page précédente : septembre 2016Page suivante : novembre 2016Modifier ce cadre



Liens entre thésaurus et entrées mentionnées dans les thésaurus[modifier le wikicode]

Bonjour,

Ces derniers temps, je créé plein de thésaurus, et je passe ensuite sur les pages listées dans les thésaurus pour ajouter :

==== {{S|vocabulaire}} ====
* {{voir thésaurus|fr|…}}

Il y a parfois plus d'un thésaurus dans lequel apparaît un mot (ex. : corps), et je vérifie donc grâce à la page spéciale Pages liées et en spécifiant de n’afficher que les pages dans l’espace de nommage Thésaurus. Deux propositions me viennent, qui pourraient éventuellement être prises en charge par des robots, mais probablement avec des complications que je n’envisage pas, d’où mon intervention ici.

  • Mettre à jour par bot les modèles {{voir thésaurus}} en vérifiant si de nouvelles pages de thésaurus comportent le mot vedette.
  • Ajouter par bot le modèle {{voir thésaurus}}, et la section -voc- si elle n’existe pas encore, en balayant les liens bleus présents dans les thésaurus existant, puis pouvoir le faire de nouveau à chaque nouvelle création de thésaurus.

Qu’en pensez-vous ? Quels problèmes pourrions-nous rencontrer dans le développement de ces routines ? Des volontaires pour les créer ? Sourire Noé 12 octobre 2016 à 15:35 (UTC)

Le problème le plus évident à éviter serait d'ajouter un mot trouvé dans une page de thésaurus mais qui n'a pas de rapport direct avec le thème. Du coup peut-être qu'une approche semi-automatique serait à privilégier. — Dakdada 12 octobre 2016 à 16:03 (UTC)
Il me semble que si on ne récolte que les mots qui sont des liens, ça devrait aller. Au pire, il y aura une petite poignée de mots à réviser Sourire Noé 12 octobre 2016 à 17:07 (UTC)
Notification JackPotte : nous en parlions dimanche dernier. Vois-tu des choses que je puisse faire dès maintenant afin de t’aider à coder ça un de ces jours ? Sourire Noé 24 novembre 2016 à 09:58 (UTC)
Je te dis ça avant Noël. JackPotte ($) 24 novembre 2016 à 10:12 (UTC)
Coucou JackPotte ! Est-ce que tu aurais éventuellement le temps de reproduire cette opération prochainement, afin que nous calculions l’augmentation depuis la dernière fois ? Merci d’avance Sourire Noé 20 janvier 2018 à 09:14 (UTC)
Pas sûr, en plus je suis victime de déconnexions Internet qui dureront certainement jusqu'à mardi. JackPotte ($) 20 janvier 2018 à 11:57 (UTC)

Modèle:R:Liddell[modifier le wikicode]

Bonjour, comment fait on pour lier cette page avec le modèle Modèle:R:Liddell ? {{R:Liddell|a)lo/h|ἀλόη}} ne semble pas fonctionner → voir ἀλόη#Références Cordialement.--Pixeltoo (discussion) 14 octobre 2016 à 11:02 (UTC)

Les exemples de la documentation fonctionnent toujours, donc a priori il n'y a pas lieu de modifier le modèle. C'est peut-être un cas particulier dû à la parenthèse. Quand j'ai ce genre de problème avec Reverso je colle l'URL au lieu du modèle, mais c'est plus artisanal qu'industriel : tous nos modèles de référence devraient proposer un paramètre "url=". JackPotte ($) 14 octobre 2016 à 13:45 (UTC)
Il n'y a pas de raison pour que ce lien ne marche pas, puisqu'il passe par le mot magique urlencode. Or l'url résultant n'a pas l'air encodé. On devrait ouvrir un bug sur Phabricator. — Dakdada 14 octobre 2016 à 14:30 (UTC)
Notification JackPotte et Darkdadaah : Ah je vois la version cible diffère légèrement de la version ciblée du modèle :
  • http://www.perseus.tufts.edu/hopper/text?docPerseus%3Atext%3A1999.04.0057%3Aentry%3Da)lo%2Fh&highlight= OK
  • http://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0058:entry=a%29lo%2Fh KO
  • http://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0057:entry=a%29lo%2Fh OK

J'ignore quelles sont les conventions du site perseus mais le modèle Modèle:R:Liddelltest fonctionne avec {{R:Liddelltest|a)lo/h|ἀλόη}}. J'ai juste modifié en dur l'url en passant de 58 à 57.--Pixeltoo (discussion) 15 octobre 2016 à 12:29 (UTC)

Traduction[modifier le wikicode]

Bonjour,

J'utilise souvent Wiktionnaire, la plupart du temps pour des traductions, mais certaines traductions, par exemple d'un mot anglais en français, cette traduction anglaise ne se retrouve pas sur la page française,.... Serait-il possible d'utiliser un script pour inverser toutes les traductions ? Et peut être même rajouter les synonymes d'un mot dans les traductions des autres langues ? — message non signé de 2a01:e35:2ea9:89f0:5c28:68b:72c3:6136 (d · c)

Nous y avions pensé mais le script ne saura pas faire la différence entre les différents sens des polysèmes, et surtout un wiki ou un blog ne doit pas être l'unique source pour un ajout. JackPotte ($) 15 octobre 2016 à 12:42 (UTC)
Si elles étaient rajoutées dans une section spéciale de traductions à trier selon le sens (et en attente de validation), avec un système d'ajout et de suppression automatique (dans les autres langues) ?
<<un wiki ne doit pas être l'unique source pour un ajout>>, je ne connais pas bien la philosophie des wikis, mais n'est-il pas plus logique d'ajouter est de supprimer les traductions en 'un bloc' ?

Nlle catégorie sur l'archerie et tir à l'arc?[modifier le wikicode]

Je voudrais proposer la création d'une catégorie pour le vocabulaire lié à l'archerie et le tir à l'arc - peut-être "Catégorie:Archerie" ou bien "Catégorie:Arc"? Une telle catégorie serait, je crois, mise sous Catégorie:Sports et Catégorie:Armes. Il existe sur en.wikipedia.org une catégorie "Archery" qui est assez développée. --A12n (discussion) 16 octobre 2016 à 11:05 (UTC)

OK pour Catégorie:Tir à l’arc, avec dedans Catégorie:Lexique en français du tir à l’arc... PS : ce genre de question est plutôt prévue sur WT:GC. JackPotte ($) 16 octobre 2016 à 12:33 (UTC)
Merci. J'y ai transferré la discussion. --A12n (discussion) 16 octobre 2016 à 13:39 (UTC)

Expression rationnelle pour remplacer les apostrophes droites dans les prononciations[modifier le wikicode]

Bonjour, je veux utiliser pywikibox et le script replace.py pour remplacer toutes les apostrophes droites qui e trouvent dans les prononciations. Par exemple, j’arrive à faire cela avec la ligne suivante

python pwb.py scripts/replace.py -regex "(^|{{pron\|.*)'(.*\|[a-z]{2,}}}|$)" "\1ˈ\2" -catr:"Espace principal" -summary:"Remplacement de l’apostrophe droite qui se trouve dans les prononciations par le signe API"

Le problème c’est que l’expression rationnelle utilisée fait aussi ça. En gros, il faudrait que je limite le remplacement uniquement entre « {{pron| » et « |XXX}} ». Une idée ? J’avoue que je ne suis pas très doué avec ces expressions. Pamputt [Discuter] 22 octobre 2016 à 23:52 (UTC)

Oui, bien sûr, ce n’est pas étonnant puisque :
  1. l’étoile est un opérateur « gourmand » qui va chercher le maximum de caractères (jusqu’à la fin du dernier modèle de la ligne finissant par |[a-z]{2,}}} (ce qui peut être la fin d’un certain nombre de modèles d’ailleurs, pas juste de "pron") ;
  2. et que le point matche tous les caractères, la recherche va donc pouvoir continuer en dehors du modèle "pron" en cours d’analyse.
Il faudrait pour corriger ça, je suppose, utiliser plutôt [^}]* que .*, comme ça la recherche ne continue jamais après la fin du "pron" en cours d’analyse.
Je suis curieux de savoir, par ailleurs, pourquoi tu as utilisé « ^| » et « |$ » dans le regex. — Automatik (discussion) 23 octobre 2016 à 00:23 (UTC)
Super Automatik Bravo ! Ça fonctionne. Merci pour l’explication. Pour le « ^| » et « |$ », c’est quelque chose qui trainait de mon précédent test qui visait à remplacer toutes les apostrophes droites par des apostrophes typo dans l’ensemble de la page. Ici ça n’a pas lieu d’être. Mon regex ressemble maintenant à
python pwb.py scripts/replace.py -regex "({{p[h|r]on\|[^}]*)'([^}]*\|[a-z]{2,}}})" "\1ˈ\2" -catr:"Espace principal" -summary:"Remplacement de l’apostrophe droite qui se trouve dans les prononciations par le signe API"
Pamputt [Discuter] 23 octobre 2016 à 00:40 (UTC)

Question subsidiaire. Comment je peux éviter ça ? Pamputt [Discuter] 23 octobre 2016 à 00:51 (UTC)

J'ai trouvé, il faut utiliser « [^'}]* » au lieu de « [^}]* ». Pamputt [Discuter] 23 octobre 2016 à 01:00 (UTC)
Pas sûr que ça fonctionne parfaitement, car par exemple, seule la première apostrophe a été remplacée dans daou ha tregont. Pamputt [Discuter] 23 octobre 2016 à 07:26 (UTC)
Tout simplement parce que la seconde n’est pas une apostrophe droite. S’il y en avait eu deux, ça n’aurait pas marché en principe (vu le [^'}]* du regex) : il faudrait opter pour un regex plus précis, tel que ({{p[rh]on\|[^}]*(?<!')'(?!')[^}]*\|[^}]*}}), afin d’éviter de toucher aux apostrophes quand elles sont plusieurs d’affilée, ainsi qu’activer l’option -recursive pour que la recherche se fasse à nouveau dans le modèle "pron" traité. — Automatik (discussion) 23 octobre 2016 à 10:37 (UTC) modifié le 23 octobre 2016 à 10:48 (UTC)
Notification Automatik : en fait pywikibot ne semble pas comprendre « ! », le script se termine directement en erreur. Pamputt [Discuter] 23 octobre 2016 à 14:26 (UTC)
Notification Pamputt : apparemment l’usage des regex de Python est limité dans ce cas. Dans ce cas, il faudrait contourner ça par ex. avec un regex comme : ({{p[rh]on\|(?:[^}']*|[^}]*[^'}])'(?:[^}']*|[^'}][^}]*)\|[^}]*}}), qui traite à priori tous les cas (utiliser l’option -recursive de replace.py est par contre nécessaire). — Automatik (discussion) 29 octobre 2016 à 21:33 (UTC)

Notification Automatik : merci pour cette nouvelle expression. Ca commence à devenir de plus en plus du charabia. Bref, il semble que ça ne soit pas encore la bonne expression car ça fait planter pywikibot. Par exemple avec la commande

python pwb.py scripts/replace.py -recursive -regex "({{p[rh]on\|(?:[^}']*|[^}]*[^'}])'(?:[^}']*|[^'}][^}]*)\|[^}]*}})" "\1ˈ\2" -page:"Pascal" -summary:"Remplacement de l’apostrophe droite qui se trouve dans les prononciations par le signe API"

j’obtiens

Invalid group reference: 2
Groups found:
{{pron|pas.'kal|it}}
Traceback (most recent call last):
  File "pwb.py", line 270, in <module>
    if not main():
  File "pwb.py", line 264, in main
    run_python_file(filename, [filename] + args, argvu, file_package)
  File "pwb.py", line 109, in run_python_file
    main_mod.__dict__)
  File "./scripts/replace.py", line 971, in <module>
    main()
  File "./scripts/replace.py", line 962, in main
    bot.run()
  File "./scripts/replace.py", line 599, in run
    new_text = self.apply_replacements(last_text, applied)
  File "./scripts/replace.py", line 526, in apply_replacements
    allowoverlap=self.allowoverlap, site=self.site)
  File "/home/pamputt/core/pywikibot/textlib.py", line 318, in replaceExcept
    raise IndexError
IndexError
<type 'exceptions.IndexError'>
CRITICAL: Waiting for 1 network thread(s) to finish. Press ctrl-c to abort

Pamputt [Discuter] 30 octobre 2016 à 06:59 (UTC)

En effet, puisqu’il n’y avait qu’un groupe référencé ; il manquait deux parenthèses : ({{p[rh]on\|(?:[^}]*[^'}])?)'((?:[^'}][^}]*)?\|[^}]*}}). Les groupes introduits par ?:, ce sont des groupes qui ne sont pas référencés (donc pas récupérables avec \1, \2,…), et qui servent à faire des alternatives (via |) ou des groupes de caractère optionnels (via ?). J’ai simplfié le regex pour qu'il soit plus clair, y’avait du superflu. En l’occurrence, ces groupes non référencés optionnels servent à permettre, ou bien le cas où l’apostrophe droite est suivi ou précédé par un caractère ou plusieurs (mais le premier n’est pas une apostrophe), ou bien le cas où l’apostrophe droite est en début ou fin de prononciation.
Si on le lit littéralement, ça ne devrait pas être compliqué. J’espère que cette fois ça marche. — Automatik (discussion) 30 octobre 2016 à 18:52 (UTC)
Merci bien Automatik, ça semble fonctionner. Suite au prochain épisode Sourire Pamputt [Discuter] 30 octobre 2016 à 22:39 (UTC)

Encore une question, pourquoi la première apostrophe n’a-t-elle pas été remplacée ici ? Pamputt [Discuter] 23 octobre 2016 à 01:16 (UTC)

Peut-être tenter avec l’option -recursive de replace.py (mais j’avoue que je ne comprends pas — au passage, que fait la barre verticale dans [r|h] ? [rh] suffit —). — Automatik (discussion) 23 octobre 2016 à 10:37 (UTC) modifié le 23 octobre 2016 à 10:48 (UTC)

Comment créer l’équivalent de w:fr:Modèle:Géopatro[modifier le wikicode]

Bonsoir,

Je souhaite créer dans le WT et sous le même nom un modèle identique à :

Mais voilà je ne sais pas m’y prendre. Un copier-coller vers une page homonyme suffirait-il ?

Merci pour vos lumières et pour votre aide. Cordialement. Alphabeta (discussion) 24 octobre 2016 à 18:28 (UTC)

PS : Voir un exemple d’utilisation de ce modèle dans w:fr:Le Blanc#Références. Alphabeta (discussion) 24 octobre 2016 à 18:30 (UTC)

PPS : Et dans la section « Références » de l’entrée « Le Blanc » je souhaite remplacer « http://www.geopatronyme.com/cgi-bin/carte/nomcarte.cgi?nom=LE+BLANC » par le code « {{Géopatro|LE BLANC}} ». Alphabeta (discussion) 24 octobre 2016 à 18:40 (UTC)

fait {{Géopatro}}. JackPotte ($) 24 octobre 2016 à 18:55 (UTC)
Bravo et merci. Et en plus vous avez su sauvegarder dans le WT l’historique de WP. J’ai essayé dans l’entrée « Le Blanc » « {{Géopatro|LE BLANC}} », qui donne bien : Répartition par départements (France, 1891-1990) du nom de famille « LE BLANC » fournie par l’Insee et présentée par le site Géopatronyme

. Alphabeta (discussion) 24 octobre 2016 à 19:22 (UTC). PS : AQu passage : ça permet de vérifier que le patronyme Le Blanc en deux mots est une graphie propre avant tout à la Bretagne. Alphabeta (discussion) 24 octobre 2016 à 19:24 (UTC)

Javascript[modifier le wikicode]

Bonjour, est-ce possible d'ajouter une classe CSS particulière à un élément, lorsque qu'il n'en contient pas un autre ? Plus précisément, j'aimerais ajouter une classe à un div lorsqu'il contient un h1 qui ne contient rien, et pas quand le div contient un h1 qui contient un span. Je pense que c'est faisable avec du JS, avait vous le code ou les codes ? En fait, la condition c'est le fait que mon élément en contienne un autre, qui lui même en contienne un autre. Précisément, je veux ajouter la classe .osef à un div, à la condition que le <h1> qu'il contient ait lui même un <span> dedans. Merci d'avance -Wilaw5

Bonjour, à moins que ça concerne Mediawiki, ce n'est vraisemblablement pas le bon endroit pour poser ce genre de question (NB : avec Jquery c'est relativement facile). — Dakdada 31 octobre 2016 à 10:57 (UTC)
Bonjour, en effet ça concerne plus ou moins Mediawiki étant donné qu'il est sujet ici d'un wiki sur une ferme à wikis, en tout cas désolé de ne pas avoir poser la question au bon endroit. Ceci dit, je ne maitrise pas le langage dynamique Jquery, pouvez vous me donner les ou le code à utiliser pour réaliser ma requête ? J'y tiens vraiment, mais désolé encore une fois si ce n'est pas le bon endroit. Merci d'avance.

P-S : Si vous (Darkdada) ne souhaitez pas continuez ici, peut-être pourrais-je reformuler ma demande sur votre mur afin que vous puissiez m'y communiquer les codes dessus ?

-Wilaw5

Citoid[modifier le wikicode]

Bonjour,

L’extension MediaWiki Citoid permet d’inclure facilement des références dans l’Éditeur Visuel grâce à un bouton « Source ». Elle est installée sur le Wiktionnaire francophone mais elle n’est pas configurée, et il est nécessaire de la paramétrer pour qu’elle fonctionne. Vous pouvez tester son fonctionnement sur Wikipédia par exemple. Deux options se présentent à nous : configuration à l’identique à Wikipédia pour que cette extension fasse des notes de bas de page bien propre pour les références que l’on utilise dans le texte, notamment dans l’étymologie ; configuration avec {{source}} pour que les références des citations soient détectées et complétées grâce à l’outil. Qu’en pensez-vous ? Qui serait intéressé pour creuser là-dessus ? Ah, et pour l’instant, cette extension ne récupère pas les données de Wikisource, mais j’ai déposé une suggestion pour qu’elle soit enrichie en ce sens Sourire Noé 24 novembre 2016 à 13:14 (UTC)