Module:Langue/Data/Bac à sable/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é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é.
Structure du fichier et modification[modifier le code]
Cette base est composée 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[modifier le code]
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[modifier le code]
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 Linguist List . 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>"]
- Exemples
- français, code IETF « fr ».
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"]
- chinois de Hong Kong : le nom doit être écrit entièrement en minuscules.
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 à faire pour changer un code erroné[modifier le code]
- 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 (s'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[modifier le code]
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 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.