Aide:Gadget-CreerNouveauMot/Comment ajouter une langue

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

Le gadget Gadget-CreerNouveauMot est un code javascript, activable par tout utilisateur (enregistré) dans ses préférences, qui permet, lors de l’édition d’une page, d’ajouter en quelques clics un patron d’article dans la page en cours d’édition.

Mais au fait, comment y ajouter une langue ?

Cahier des charges[modifier le wikicode]

Gadget-CreerNouveauMot fonctionne pour toutes les langues. Mais un petit nombre d'entre elles bénéficient du support complet par le gadget, c'est-à-dire :

  • une barre des caractères API adaptée à la langue,
  • une interface proposant seulement et exactement les types de mots qui existent dans la langue,
    • une adaptation dynamique des menus pour ne proposer que ce qui existe,
    • une adaptation dynamique des menus pour essayer de proposer les options les plus probables,
  • une génération de wikicode adaptée à la langue,
    • création de la structure des articles avec le code de langue partout où il faut,
    • modèles d'ébauche insérés partout où l'utilisateur n'a pas rempli la case,
    • ajout automatique des modèles de flexion quand c'est possible,

Comment ajouter une langue[modifier le wikicode]

Le code principal du gadget est dans MediaWiki:Gadget-CreerNouveauMot.js. Le code spécifique à une langue est dans la sous-page MediaWiki:Gadget-CreerNouveauMot.js/code-langue.js.

Pour créer une nouvelle langue, il faut donc créer une nouvelle sous-page, puis la lier au code principal.

Contenu de la sous-page de langue[modifier le wikicode]

Elle contient au minimum les fonctions "publiques" (càd utilisées par le module principal) suivantes, qui par définition doivent être personnalisées :

  • CrNoMo_TitreHtml_code-langue() (titre de la boite de dialogue)
  • CrNoMo_BarreAPI_code-langue() (barre API de la boite de dialogue)
  • CrNoMo_DialogHtml_code-langue() (partie spécifique de la boite de dialogue)
  • CrNoMo_Type_code-langue() (gestion dynamique de la boite de dialogue)
  • CrNoMo_Patron_code-langue() (génération de la partie spécifique du patron)

Et qu'est-ce qu'il faut faire ?[modifier le wikicode]

Le plus simple est de copier-coller la page d'une des langues existantes, et de personnaliser les cinq fonctions qu'elle contient.

La première chose à faire après le copier-coller est bien évidemment de remplacer code-langue partout où il apparait :

  • dans les déclarations des fonctions,
  • dans les évènements html (onchange, onclick, etc.).

TitreHtml()[modifier le wikicode]

Retourne le code html pour le texte de la barre de titre de la boite de dialogue.

Remplacez juste le nom de la langue impossible de faire ça automatiquement sans ajouter de pénibles requêtes aux serveurs.

BarreAPI()[modifier le wikicode]

Retourne le code html pour le texte de la barre de caractères API de la boite de dialogue.

Remplacez par la liste des caractères API pertinents pour la langue (pensez que c'est aussi un guide pour l'utilisateur, alors n'y mettez que le nécessaire pour la phonologie standard de la langue concernée).

Utilisez la fonction CrNoMo_BarCharAPI(lc), qui est dans le module principal, et qui crée les liens adéquats.

DialogHtml()[modifier le wikicode]

Génère la partie de code html créant la boite de dialogue qui est susceptible de changer d'une langue à une autre.

Le code html doit contenir les éléments suivants, sans modifier leurs "id" ou alors il faut modifier le module principal, ce qui ne devrait être fait qu'en dernière extrémité

  • select id="IdType" (choix du type grammatical du mot, comme adjectif, nom, etc.)
    → La liste doit évidemment être personnalisée à la langue, selon ce qui existe pour elle.
  • select id="IdGenre" (choix du genre du mot, comme neutre, féminin, etc. — aussi utilisé pour les groupes de verbes, etc.)
    → La liste des choix possibles dépend du précédent via Type(), cette fonction devant être personnalisée à la langue.
  • input type="checkbox" id="IdLocution" (conserver tel quel)
  • input type="checkbox" id="IdSigle" (conserver tel quel)
  • input type="checkbox" id="IdFlexion" (conserver tel quel)
  • input type="text" id="IdLemme" le moyen de déterminer la forme non-fléchie dépend de la langue

Il est important de ne pas changer les "id", car c'est sur eux que se base le code principal pour récupérer les valeurs et les ranger dans des variables globales, pour que Patron() puisse générer le wikicode.

Type()[modifier le wikicode]

Fonction de gestion dynamique de la boite de dialogue le nom de cette fonction est mal choisi, une requête sur WT:RA est en cours pour la renommer.

Normalement appelée uniquement par les évènements html (onchange, onclick, etc.).

Cette fonction dépend énormémént de la langue. C'est elle qui décide si les adjectifs peuvent être neutres ou masculins, les adverbes invariables ou féminins, ou si ces notions n'ont aucun sens.

La chose essentielle que fait cette fonction, c'est vider la liste id="IdGenre", et la recréer en fonction du id="IdType".

Patron()[modifier le wikicode]

Fonction qui crée le wikicode de l'article en fonction de tout ce qui a été entré dans la boite de dialogue.

Cette fonction repose sur le fait que CrNoMo_LitMenu() (dans le module principal) a placé dans des variables globales toutes les valeurs entrées dans le formulaire html (ce que le code du module principal assure).

C'est cette fonction qui, en particulier, décide s'il faut inclure une flexoboite (et laquelle), une prononciation, un lien vers Wikipédia, etc., et cela selon le type de mot. Son cœur est un switch (CrNoMo_TypeMot).


(à compléter)

Tester la sous-page de langue avant de faire des bêtises[modifier le wikicode]

Si vous êtes admin, vous pouvez créer la page directement à sa place définitive dans l'espace Mediawiki:. Mais en fait vous devriez faire comme ceux qui ne le sont pas, et qui peuvent néanmoins créer, tester, et utiliser de nouvelles sous-pages (utilisateurs enregistrés seulement) :

  • cochez le gadget dans vos préférences, bien sûr avez-vous branché la prise ?Clin d’œil,
  • créez la page dans votre espace perso, par exemple Utilisateur:Exemple/Gadget-CreerNouveauMot.js/code-langue.js,
  • ajoutez à votre common.js le code importScript("Utilisateur:Exemple/Gadget-CreerNouveauMot.js/code-langue.js");

Désormais, vous disposez de la nouvelle langue, et vous pouvez faire toutes les modifications que vous voulez au code javascript sans gêner les autres utilisateurs. ceci est applicable à toutes les sous-pages existantes, puisque votre version est prioritaire, juste pour vous

Intégrer la sous-page de langue au gadget[modifier le wikicode]

Une fois que vous êtes content du code que vous avez écrit dans votre sous-page, demandez à un admin de faire les deux choses suivantes (afin que tout le monde puisse profiter de vos améliorations) :

  • déplacer votre sous-page Utilisateur:Exemple/Gadget-CreerNouveauMot.js/code-langue.js vers la même dans l'espace Mediawiki: ou remplacer l'ancienne version, si elle existait déjà,
  • modifier MediaWiki:Gadget-CreerNouveauMot.js en y ajoutant importScript("MediaWiki:Gadget-CreerNouveauMot.js/code-langue.js"); si ce n'était déjà fait


Voila, c'est fait ! Tout le monde peut en profiter !Sourire