« Module:Langue/Data/Documentation » : différence entre les versions

Une page de Wikiversité, la communauté pédagogique libre.
Contenu supprimé Contenu ajouté
m semi-protection longue
Hlm Z. (discussion | contributions)
catégorisation
Ligne 88 : Ligne 88 :
* <code>rtl</code> : booléen égal à <code>true</code> si cette langue s'écrit de droite à gauche ({{lang|en|right to left}}), <code>nil</code> dans les autres cas ;
* <code>rtl</code> : booléen égal à <code>true</code> si cette langue s'écrit de droite à gauche ({{lang|en|right to left}}), <code>nil</code> dans les autres cas ;
* <code>invalide</code> : booléen égal à <code>true</code> si ce code n'est pas un code IETF valide, <code>nil</code> dans les autres cas.
* <code>invalide</code> : booléen égal à <code>true</code> si ce code n'est pas un code IETF valide, <code>nil</code> dans les autres cas.

<includeonly>
<includeonly>
{{Projet Scribunto}}
{{Projet Scribunto}}
[[Catégorie:Module de données]]
</includeonly>
<noinclude>
</includeonly><noinclude>
[[Catégorie:Documentation de module|{{BASEPAGENAME}}]]
[[Catégorie:Documentation de module]]
</noinclude>
</noinclude>

Version du 12 juillet 2014 à 20:57


Ce module est une base de données de langues destinée à être chargé par mw.loadData.

Avertissements

Attention à la syntaxe lors de la modification de ces données : cette page est utilisée par un programme informatique qui n'accepte pas qu'une virgule soit absente. Seules possibilités :

  • les données saisies peuvent être entourées de guillemets doubles (") ou simples (') — mais pas de guillemets français («  »)
  • des espaces peuvent être ajoutés pour améliorer la lisibilité.

Avant d'ajouter une langue, vérifier qu'elle n'est pas déjà liée à un autre code dans la liste.

Pour rechercher le code approprié :

  • obtenir le nom de la langue en anglais (par exemple grâce au lien interlangue sur l'article de la langue) ;
  • rechercher celui-ci dans la liste complète des codes IETF du registre tenu à jour par l'IANA ;
  • si la langue ne possède pas de code IETF, elle ne doit pas figurer dans cette base.

Modèle:Boite déroulante

Structure du fichier et modification

Cette base est composée en deux parties :

  1. Liste des codes IETF avec les informations qui s'y rapportent ;
  2. Liste des noms de langue et quelques codes incorrects avec un lien vers le code de base de la liste précédente.

Liste des codes IETF

Pour chaque code IETF, il y a une ligne de ce type :

data["<code IETF en minuscule>"] = {code = "<code IETF>", nom = "<nom de la langue en français>"}

Exemples :

  • français, code IETF « fr »
    data["fr"] = {code = "fr", nom = "français"}
  • monténégrin, code IETF « sr-ME »
    data["sr-me"] = {code = "sr-ME", nom = "monténégrin"}

Cette syntaxe est complétée par des options :

  • Si la page Wikipédia à propos de cette langue ne porte pas le nom de la langue, on ajoute une donnée « page = "<page wikipédia de cette langue>" »
  • Si la langue s'écrit de droite à gauche, on ajoute une donnée « rtl = true » (rtl pour right to left, pas de guillemets autour de true)
  • Si le code n'est pas un code IETF (ou un code ISO ou Linguist List) valide, mais qu'il est ajouté pour éviter les erreurs de saisie, on ajoute « invalide = true », ce qui permet la catégorisation des pages utilisant ce code.

Exemples :

  • corse
    data["co"] = {code = "co", nom = "corse", page = "Corse (langue)"}
  • arabe, qui s'écrit de droite à gauche
    data["ar"] = {code = "ar", nom = "arabe", rtl = true}
  • japonais, IETF « ja » mais souvent écrit avec le code ISO 3166-1 du Japon « JP »
    data["ja"] = {code = "ja", nom = "japonais"}
    data["jp"] = {code = "ja", nom = "japonais", invalide = true}

La liste est triée par ordre alphabétique des codes IETF.

Liste des noms de langues

L'objectif de cette liste est de fournir des alias permettant d'utiliser un nom français au lieu d'un code de langue IETF ou si ce dernier n'existe pas ISO 639-3 ou Modèle:Lien. Plutôt que de dupliquer les données, on lie le nouveau nom aux données du code IETF.

Les données de cette liste sont sous la forme :

data["<nom en micuscule>"] = data["<code IETF en minuscule>"]

Exemples :

data["français"] = data["fr"]

  • pendjabi, code IETF « pa », qui a plusieurs orthographes, avec ou sans diacritiques.

data["pendjabi"] = data["pa"]
data["penjabi"] = data["pa"]
data["penjābī"] = data["pa"]
data["panjabi"] = data["pa"]
data["panjābī"] = data["pa"]

  • latin, dont le code ISO 639 « lat » est souvent utilisé.

data["latin"] = data["la"]
data["lat"] = data["la"]

  • hébreu, code IETF « he », mais l'ancien code « iw » est quelquefois utilisé.

data["hébreu"] = data["he"]
data["iw"] = data["he"]

data["chinois de hong kong"] = data["zh-hk"]

Cette liste est aussi triée par code IETF, c'est-à-dire la deuxième partie de l'expression.

Liste des actions à effectuer pour changer un code erroné

  • Dans la liste des caractéristiques (première partie), changer les deux occurrences du code IETF. Attention, il faut impérativement des minuscules la première fois.
  • Repositionner cette ligne dans l'ordre alphabétique pour qu'on puisse la retrouver.
  • Dans la liste des alias (deuxième partie), changer les codes IETF sur chaque redirection (elles se suivent s'il y en a plusieurs).
  • Ajouter une ligne pour rediriger l'ancien code vers le nouveau.
  • Repositionner ces lignes dans l'ordre alphabétique des codes IETF pour qu'on puisse les retrouver.

Après avoir enregistré les modifications, cliquer sur le bouton « purger » (Documentation du module) pour mettre à jour la liste des langues supportées.

Utilisation dans un module Lua

Ce module exporte pour chaque nom de langue, indexé par son nom en français ou son code IETF en minuscule, une table avec les élément suivants :

  • code : code IETF de la langue ;
  • nom : nom complet, en français, de cette langue ;
  • page : nom de la page Wikipédia de cette langue, uniquement si celle-ci est différente du nom, nil dans les autres cas ;
  • rtl : booléen égal à true si cette langue s'écrit de droite à gauche (right to left), nil dans les autres cas ;
  • invalide : booléen égal à true si ce code n'est pas un code IETF valide, nil dans les autres cas.