Aller au contenu

Module:Langue/Data/Documentation

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 16 août 2013 à 20:19 et modifiée en dernier par Zebulon84 (discuter | contributions) (En fait murger le cache n'est pas nécessaire, ni pour la liste ni pour le message d'erreur.). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.


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, chercher s'il existe un code ISO 369-3 ou LinguistList dans la base de données Linguist List ;
  • si aucun code n'est trouvable, demander conseil sur le Bistro du jour ou le Café des linguistes par exemple. Certains codes peuvent parfois entrer en conflit avec d'autres modèles.

Structure du fichier et modification

Cette base est composé 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 Linguist List. Plutôt que de dupliquer les données, on lie le nouveau nom au 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 (elle se suivent s'il y en a plusieurs).
  • Ajouter un ligne pour rediriger l'ancien code vers le nouveau.
  • Repositionner ces lignes dans l'ordre alphabétique des codes IETF pour qu'on puisse la retrouver.

Après avoir enregistrer 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 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.