New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Python (langage) - Wikipédia

Python (langage)

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir Python. 

Python
Apparu en 1990
Auteur Guido van Rossum
Développeurs Python Software Foundation
Dernière version 2.5 (19 septembre 2006)
Paradigmes Objet, impératif, fonctionnel
Typage Fort, dynamique
Influencé par ABC, C, Haskell, Icon, Lisp, Modula-3, Perl, Smalltalk, Tcl
A influencé Ruby, Boo
Implémentations CPython, Jython, IronPython, PyPy
Système d'exploitation Multi-plate-forme
Licence Python Software Foundation License
Site Web http://www.python.org

Python est un langage de programmation interprété, multi-paradigme. Il autorise la programmation impérative structurée, orientée objet, et fonctionnelle. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.

Le langage Python est placé sous une licence libre proche de la licence BSD[1] et fonctionne sur la plupart des plates-formes informatiques, des super-calculateurs aux ordinateurs centraux, de Linux à Unix en passant par Windows et MacOS, avec java ou encore .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut-niveau et une syntaxe simple à utiliser. Il est également apprécié par les pédagogues qui y trouvent un langage où la syntaxe clairement séparée des mécanismes de bas niveau, permet une initiation plus aisée aux concepts de base de la programmation.[2]

Sommaire

[modifier] Utilisations

Python est un langage qui peut s'utiliser dans de nombreux contextes et s'adapter à tout type d'utilisation grace à des bibliothèques spécialisées à chaque traitement. Il est cependant particulièrement utilisé comme langage de script pour automatiser des tâches simples mais fastidieuses comme par exemple un script qui récupèrerait la météo sur internet ou qui s'intègrerait dans un logiciel de création assistée par ordinateur afin d'automatiser certains enchainements d'actions répétitives. On l'utilise également comme langage de développement de prototype lorsqu'on a besoin d'une application fonctionnelle avant de l'optimiser avec un langage de plus bas niveau.

[modifier] Histoire

Python a été créé au début des années 1990 par Guido van Rossum au CWI aux Pays-Bas en tant que successeur du langage ABC pouvant gérer les exceptions et s'interfacer avec le système d'exploitation Amoeba. Van Rossum est le principal auteur de Python, et son rôle de décideur central permanent de Python est reconnu avec humour par le titre de « Dictateur bienveillant à vie » (Benevolent Dictator for Life, BDFL).

La dernière version sortie au CWI était Python 1.2. En 1995, Van Rossum continua son travail sur Python au CNRI à Reston, aux États-Unis, où il sortit plusieurs versions du logiciel. Python 1.6 fut la dernière version sortie au CNRI.

Après la sortie de Python 1.6, et après que Van Rossum aie quitté le CNRI pour travailler avec des développeurs de logiciels commerciaux, le CNRI et la Fondation pour le logiciel libre collaborèrent pour modifier la licence de Python afin de la rendre compatible avec la GPL. Python 1.6.1 est essentiellement le même que Python 1.6 avec quelques correctifs mineurs et la nouvelle licence compatible GPL.

En 2000, l'équipe principale de développement de Python déménagea à BeOpen.com pour former l'équipe PythonLabs de BeOpen. Python 2.0 fut la seule version sortie à BeOpen.com. Après cette version, Guido Van Rossum et les autres développeurs de PythonLabs rejoignirent Digital Creations.

Python 2.1 fut une version dérivée de Python 1.6.1, ainsi que de Python 2.0. Sa licence fut renommée Python Software Foundation License. Tout code, documentation et spécifications ajouté, depuis la sortie de Python 2.1 alpha, est détenu par la Python Software Foundation (PSF), une association sans but lucratif fondée en 2001, modelée d'après l'Apache Software Foundation.

Un développement parallèle, entamé en 2004, est en discussion pour Python 3.0. Cette nouvelle version cassera la compatibilité ascendante afin de réparer certains défauts perçus du langage (fonction lambda, etc). Guido van Rossum espère sortir une première version alpha en 2007.

[modifier] Caractéristique du langage

[modifier] Syntaxe

Python a été conçu pour être un langage lisible. Il vise à être visuellement épuré, et utilise des mots anglais fréquemment là où d'autres langages utilisent de la ponctuation, et possède également moins de constructions syntaxiques que de nombreux langages structurés tels que C, Perl, ou Pascal.

Les blocs sont identifiés par l'indentation, au lieu d'accolades comme en C/C++, ou de Begin ... End comme en Pascal. Une augmentation de l'indentation marque le début d'un bloc, et une réduction de l'indentation marque la fin du bloc courant :


Fonction factorielle en C Fonction factorielle en Python
int factorial(int x) {      
    if (x == 0)                    
        return 1;                   
    else
        return x * factorial(x-1);
}
def factorial(x):
    if x == 0:
        return 1
    else:
        return x * factorial(x-1)
 

[modifier] Types de base

Les types de base en Python sont relativement complets et puissants, il y a entre-autres :

  • Les objets numériques
    • int est un entier classique.
    • long est un entier dont la mémoire de stockage est allouée dynamiquement, la taille maximale n'est donc pas fixe et dépend de la capacité de la machine.
    • float est une approximation d'un nombre réel
    • complex est une approximation d'un nombre complexe (typiquement deux floats)
  • Les objets "itérables"
    • Les objets list sont bien plus que de simple tableaux, car ils ne sont pas de taille fixée à l'avance et peuvent contenir dans une même instance des objets de types différents.
    • Les objets n-uplet (ou tuple) sont une variation non mutable des listes
    • Les objets str sont des chaines de caractères, qui possèdent une multitude de méthodes de base pour remplacer des mots, éliminer les espaces blancs, séparer le texte en morceau, etc. Ce sont des objets itérables car ils peuvent être vus comme des tableaux d'autres str d'un seul caractère.
    • Les objets dict sont des dictionnaires qui relient un objet à un autre objet.

Les objets itérables sont parcourus à l'aide d'une boucle for de la manière suivante :

for element in iterable:
  traiter(element) 

Il est possible de dériver les classes des types de base pour créer ses propres types : UserDict, UserString (depuis la version 2.2)

[modifier] Programmation fonctionnelle

Python permet de programmer dans un style fonctionnel. Les compréhensions de listes sont disponibles. Par exemple, pour construire la liste des carrés des entiers naturels plus petits que 10, on peut utiliser l'expression :

l = [x**2 for x in range(10)]

la liste des nombres pairs :

l = [unEntier for unEntier in range(10) if  unEntier % 2 == 0 ]

De plus, les fonctions lambda sont disponibles :

add2=lambda x: x+2

s'ensuit alors add2(5)==7. Les fonctions lambda peuvent être utilisées comme arguments dans des expressions fonctionnelles : filter(lambda x: x <5, une_liste) retournera une liste constituée des éléments de une_liste inférieurs à 5. Le même résultat peut être obtenu avec [x for x in une_liste if x <5] .

[modifier] Programmation objet

La modélisation objet est aussi très importante en Python : tout est objet que ce soit les types de bases, les fonctions, les instances de classes (les objets « classiques » des langages C++ et Java) et les classes elles-mêmes (qui sont des instances de méta-classes).

Une classe se définit avec le mot class. Les classes Python supportent l'héritage multiple, il n'y a pas de surcharge statique exactement comme en C++/Java, mais on arrive à quelque chose de similaire à l'aide d'arguments optionnels. En Python, l'attribut d'un objet désigne à la fois une variable membre ou une méthode. Il est possible de lire ou de modifier un attribut dynamiquement avec les fonctions :

  • getattr(objet, 'nom de l'attribut')
  • setattr(objet, 'nom de l'attribut', nouvel_attribut)

Exemple de deux classes simples :

class Personne:
   def __init__(self, nom, prenom):
       self.nom = nom
       self.prenom = prenom
   def afficher_nom(self) :
       print self.nom+' '+self.prenom

class Etudiant(Personne):
   def __init__(self, classe, nom, prenom=''):
       Personne.__init__(self, nom, prenom)
       self.classe = classe
   def afficher_statut(self):
       Personne.afficher_nom(self)
       print self.classe

[modifier] Générateurs

Le mot-clef yield utilisé dans une fonction permet de faire de cette fonction un générateur. L'appel de cette fonction renvoie un objet de type generator, qui peut être utilisé dans une boucle for, par exemple.

À chaque appel, le générateur effectue son traitement jusqu'à rencontrer le mot-clé yield, renvoie la valeur de l'expression devant yield, et à l'appel suivant, reprend son déroulement juste après le yield. Par exemple pour calculer la suite de Fibonacci, on peut faire :

def gen_fibonacci(max=sys.maxint):
    a=0
    b=1
    while a<max:
        yield a
        a,b = b,a+b
for n in gen_fibonacci(1000):
    print n

[modifier] Réflexivité

Grâce à un usage intensif des dictionnaires (sorte de table de hachage), Python permet d'explorer les divers objets du langage (introspection) et dans certains cas de les modifier (intercession).

[modifier] Typage

Le typage n'est pas vérifié à la compilation. De ce fait, des opérations sur un objet peuvent échouer, signifiant que l'objet en question n'est pas du bon type. Malgré l'absence de typage statique, Python est fortement typé, interdisant des opérations ayant peu de sens (comme, par exemple, additionner un nombre à une chaîne de caractères) au lieu de tenter silencieusement de la convertir en une forme qui a du sens.

Python propose aussi un mécanisme de typage fort grâce à l'API trait ou au design pattern decorators.

[modifier] Bibliothèque standard

Python est fourni « Piles Incluses ».
Python est fourni « Piles Incluses ».

Python possède une grande bibliothèque standard, fournissant des outils convenant à de nombreuses tâches diverses. Les modules de la bibliothèque standard peuvent être augmentés avec des modules spécifiques écrits en C ou en Python.

La bibliothèque standard est particulièrement bien conçue pour écrire des applications utilisant Internet, avec un grand nombre de formats et de protocoles standards gérés (tels que MIME et HTTP). Des modules pour créer des interfaces graphiques et manipuler des expressions rationnelles sont également fournis. Python inclut également un framework de tests unitaire pour créer des suites de test exhaustives.

[modifier] Interfaces Graphiques

Python possède plusieurs modules disponibles pour la création de logiciels avec un interface graphique. Le plus répandu est Tkinter, qui fait partie de la bibliothèque standard, et qui est donc installé avec Python. Ce module convient à beaucoup d'applications et peut être considéré comme suffisant dans la plupart des cas. Néanmoins, d'autres modules ont été créés pour pouvoir lier Python à d'autres bibliothèque logicielles ('toolkit'), pour davantage de fonctionnalités, pour une meilleure intégration avec le système d'exploitation utilisé, ou simplement pour pouvoir utiliser Python avec sa bibliothèque préférée. Aussi, il faut dire que certains programmeurs trouvent l'utilisation de Tkinter plus pénible que d'autres bibliothèques. Ces autres modules ne font pas partie de la bibliothèque standard et doivent donc être obtenus séparément.

Bibliothèques logicielles pour la création d'interfaces graphiques avec Python

[modifier] Adoption de Python

Cette section composée d'une simple liste est à rédiger. Sa qualité peut être largement améliorée en la remplaçant ou en lui ajoutant un texte rédigé synthétisant les informations de manière encyclopédique.

Python est utilisé dans de nombreux domaines[3] dont :

De nombreuses sociétés utilisent Python, et certaines le mentionnent sur le site officiel[4] :

[modifier] Implémentations

Outre l'implémentation de référence, nommée CPython (car écrite en langage C), il existe d'autres systèmes implémentant le langage Python :

Ces autres implémentations ne bénéficient pas forcément de la totalité de la bibliothèque de fonctions écrites en C pour l'implémentation de référence.

[modifier] Plates-formes supportées par CPython

Compatible UNIX

OS bureautique

Embarqué ou spécifique

Autres


[modifier] Historique des versions de Python

Version Date de sortie Nouveautés
3 (en développement)
  • Fusion des types 'int' et 'long'
  • Les chaînes sont en Unicode par défaut, 'bytes' remplace l'ancien type 'str'
  • Utilise des itérateurs plutôt que des listes là où c'est approprié (ex : dict.keys())
  • a/b est la vraie division par défaut
  • exec et print deviennent des fonctions
  • None et as deviennent des mots clé
  • Le fichier __init__.py n'est plus nécessaire pour les modules Python
  • `x`, l'opérateur <>, et la méthode find() des chaînes disparaissent
  • De nombreuses fonctions disparaissent : apply(), buffer(), callable(), ...
  • map() et filter() disparaissent au profit des compréhensions de liste
  • reduce() disparaît au profit des boucles explicites

Voir la PEP 3100 pour les détails

2.5 19 septembre 2006
  • Ajout de l'opérateur with
  • Ajout des méthodes send(), throw() et close() aux générateurs
  • Expression conditionnelle (a if test else b)
  • Les imports de module peuvent être relatifs
  • Ajout des méthodes partition() et rpartition() aux chaînes str et unicode
  • Ajout des fonctions any() et all()
  • Intégration des bibliothèques ctypes, ElementTree, hashlib, sqlite3 et wsgiref
2.4 30 novembre 2004
  • Ajout des décorateurs de fonction/méthode (@decorateur)
  • Conversion automatique d'un entier court en entier long si le résultat d'une opération est trop grand
  • Expressions de générateur retournant les résultats l'un après l'autre et non pas sous forme d'une liste, exemple : sum( x for x in xrange(10000) )
  • Ajout des fonctions reversed() et sorted()
  • La fonction sort() accepte les mots clés cmp, key et reverse
  • Création du module decimal
2.3 29 juillet 2003
  • Ajout des fonctions enumerate() et sum()
  • Le type bool est maintenant vraiment distinct d'un entier
  • Beaucoup d'améliorations du support Unicode
2.2 21 décembre 2001
  • Unification de Type et de Class: on peut maintenant hériter des types de base
  • Ajout des itérateurs et générateurs
  • Nouvel opérateur a // b pour la division entière
2.1 17 avril 2001
  • Création du module __future__ pour rendre les transitions plus douces
  • Comparaisons riches (méthodes __lt__, __le__, ..., __ne__)
  • Framework d'avertissement
  • Ajout des modules inspect, pydoc, doctest, pyunit
  • Ajout des références faibles (weak references)
  • Les fonctions peuvent avoir des attributs
  • "Nested Scopes"
  • La version 2.0.1 (juin 2001) sera la première version compatible GPL
2.0 16 octobre 2000
  • Changement majeur : support d'Unicode
  • Ajout des compréhensions de liste (List Comprehensions)
  • Ajouts des opérateurs avec assignement (a+=b, a*=b, etc.)
  • Les chaînes str ont maintenant des méthodes
  • Nouveau ramasse-miettes à cycles
  • Nouveau prototype "def f(*args, **kw)" pour les fonctions, avant il fallait utiliser apply()
  • Ajout des modules distutils, xml.dom.minidom module et xml.sax
1.6 5 septembre 2000
  • La méthode append() des listes n'accepte plus qu'un seul argument
  • Le résultat des fonctions str() et repr() est maintenant beaucoup plus souvent différent, exemple : str(1L)=='1' et repr(1L)=='1L'
  • Les chaînes de caractères ont maintenant des méthodes (" abc ".strip())
  • Le module re est compatible avec l'ancien moteur, est plus rapide, et accepte les chaînes Unicode
  • Ajout du module distutils
  • Nouveau prototype "def f(*args, **kw)" pour les fonctions, avant il fallait utiliser apply()
  • int() et long() acceptent maintenant une base en second argument
  • L'opérateur in peut être surchagé avec une méthode __contains__()
1.5(.2) 13 avril 1999
  • Ajout du mot clé assert
  • Possibilité d'importer une hierarchie de modules (import spam.ham.eggs)
  • Nouveau module re qui remplace regex
  • Les exceptions sont maintenant des classes
  • Ajout de l'option -O qui supprime les assertions et informations de ligne de fichier

[modifier] Voir aussi

b:Accueil

Wikilivres propose un ouvrage abordant ce sujet : Le langage de programmation Python.

[modifier] Articles connexes

[modifier] Liens externes


[modifier] Notes et références

  1. http://www.python.org/psf/license/
  2. (en) « il faut treize paragraphes pour expliquer un "hello world!" en C++, en python il n'en faut que 2 »
  3. http://www.python.org/about/success/
  4. http://www.python.org/Quotes.html
  5. Python Creator Guido van Rossum now working at Google, article sur ONLamp.com
Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique.

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu