Module:Langue/Data/Documentation
Ce module est une base de données destinée à être chargé par mw.loadData.
Attention à la syntaxe lors de la modification de ces données. Cette page est utilisé par un programme informatique qui n'accepte pas qu'une virgule soit absente. Seules possibilités :
- les donnée saisie peuvent être entourée de guillemets double (") ou simple (') — mais pas de guillemets français (« »)
- des espaces peuvent être ajoutés pour améliorer la lisibilité.
Structure du fichier et modification
Cette base est composé en deux parties
- Liste code IETF avec les informations qui s'y rapporte
- Liste de nom de langue et (quelque) code ISO 639 avec un lien vers le nom de base de la liste précédente.
Liste des code 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 detrue
) - Si le code n'est pas un code IETF valide mais qu'il est ajouté pour éviter les erreurs de saisie on ajoute «
invalide = true
» Cela permettra 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é par ordre alphabétique des code IETF
Liste des noms de langues
L'objectif de cette liste est de fournir des alias permettant d'utilisé un nom français au lieu d'un code IETF, ou les codes ISO 639 répandu. Plutôt que de dupliquer les données, on lie le nouveau nom au données du code IETF.
cette liste est sous la forme :
data["<nom en micuscule>"] = data["<code IETF en minuscule>"]
Exemple :
- français, code IETF « fr »
data["français"] = data["fr"]
- Pendjabi, code IETF « pa », qui a plusieurs orthographe, 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 est « he » mais un ancien code iw est quelquefois utilisé
data["hébreu"] = data["he"]
data["iw"] = data["he"]
- chinois de Hong Kong : le nom doit être écrit entièrement en minuscule
data["chinois de hong kong"] = data["zh-hk"]
Cette liste est aussi trié par code IETF, donc la deuxième partie de l'expression.
Liste des actions à faire pour changer un code erroné
- Dans la première partie, changé 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 deuxième partie, changé les codes IETF sur chaque redirection (si il y en a plusieurs elle se suivent),
- Ajouter un ligne pour rediriger l'ancien code vers le nouveau,
- Repositionner ces lignes dans l'ordre alphabétique des code IETF pour qu'on puisse la retrouver.
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 suivant
code
: code IETF de la langue,nom
: nom complet, en français, de cette langue,page
: nom de la page wikipedia 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.