Manual:Language/fr


 * Voir aussi la section Langues du manuel d'architecture MediaWiki (devrait être fusionné ici ?) 

Dans MediaWiki, il y a divers types de langues :


 * La langue du contenu du site (, basé sur ), qui devrait généralement rester la même aussi longtemps que le wiki existe.
 * La variante de langue du contenu du site est la variante par défaut quand  est mis en œuvre sur le site pour cette langue.
 * La langue d’interface utilisateur ($contextSource->getLanguage appelée précédemment ), qui peut être changée dans vos préférences ou avec le paramètre ajouté   dans l’URL, mais qui reste généralement la même tout au long de l’utilisation du wiki par l’utilisateur.
 * La langue du contenu de la page. Elle peut être différente pour chaque page, même si la langue du site et celle de l'utilisateur sont les mêmes. Elle est définie par  dans son titre, qui représente la langue dans laquelle le texte source du wiki est écrit.
 * La langue de visualisation de la page, aussi appelée variante de langue utilisateur, qui est une variante de langue de la langue du contenu de la page, suivant la préférence de l’utilisateur. Elle peut également être configurée par le paramètre  (ou ) ajouté dans l’URL (par exemple, en sélectionnant l’un des onglets proposés) si c’est une variante de la langue de contenu de la page actuellement visualisée. Elle est définie par   dans le titre, qui représente la langue dans laquelle le contenu rendu en HTML est écrit.

Tous les trois sont des objets de type langue.



Code de langue

 * A ne pas confondre avec les codes de projets Wikimedia ; voir également les codes de langue sur Meta.

Un code de langue est une abréviation standard valide désignant une langue prise en charge par MediaWiki, qui utilise de tels codes pour identifier de manière standard les langues (essentiellement en accord avec l'ISO 639-3, à l’exception des codes ISO 639-1 à deux lettres pour les régionalisations « établies » ) et qui les expose ou les nécessite pour adapter de nombreux points de l’interface et du code.

Dans l’exemple ci-après,,   est le code de langue pour le.

La conformité avec le standard Unicode est requise pour fournir un bon support de langue, en particulier en coopération avec CLDR ; avoir un code ISO 639-3 valide est une condition nécessaire pour qu’une nouvelle langue puisse être ajoutée aux données de régionalisation de MediaWiki.

Names.php
est le dépôt maître des langues prises en charge par MediaWiki. Ce n'est pas la même chose que les langues affichées en l10n (fichiers JSON) par Mediawiki, ni les langues dont MediaWiki connait le nom (via ), souvenez-vous en !



Langues de repli
Certaines langues dans MediaWiki ont ce qu’on appelle des « séquences de repli ». C’est vers elles que MediaWiki s’orientera en utilisant une langue différente s’il ne peut pas trouver ce qu’il cherche dans une langue demandée. Par exemple le code de langue  (français cajun) se replie sur le code de langue   (français). La raison de ceci est que bien souvent de nombreuses langues (ou variantes de langues) n’ont pas tous les messages et paramètres de régionalisation traduits ou adaptés spécifiquement pour elles.

La séquence de repli pour chaque langue peut se trouver dans son fichier de configuration  associé. Par exemple (grep fallback). Une liste brute existe depuis dans ce commentaire de Phabricator.



Langue de contenu du site
Afficher/obtenir la langue du contenu du site





Langue de l’interface utilisateur

 * Valeur par défaut
 * $contextSource->getLanguage


 * Initialisé par


 * Spécial:Préférences
 * dans l’URL (voir uselang)
 * (ou ) dans l’URL si c’est une variante de votre langue utilisateur


 * Problèmes
 * Parce que les messages d’interface peuvent venir des langues de repli et que la langue (sa valeur) n’est pas retournée, la langue actuelle de chaque message n’est pas connue.



Langue du contenu de page

 * Valeur par défaut


 * $wgLang dans les pages spéciales.
 * l’anglais pour le CSS et les pages JS.
 * pour les pages de l’espace de noms MediaWiki, la langue dépend de la sous-page. Par exemple, la langue de la page MediaWiki:Message/ar sera définie comme l’arabe (ar), et MediaWiki:Message sera.
 * toutes les autres pages sont  par défaut.


 * Configuration
 * Les extensions peuvent modifier toutes les autres pages au moyen de l'accroche . La valeur pour les pages spéciales, CSS, JS, et pour les pages des espaces de noms MediaWiki ne peut pas être modifiée.


 * Exemples
 * L’extension Translate l’utilise pour la fonctionnalité de traduction de page.

Voir translatewiki:Project:About/ar comme une traduction de translatewiki:Project:About. La direction des lignes y est ainsi initialisée correctement à « de droite à gauche » pour l’arabe.


 * Modification manuelle de la langue de la page
 * La sélection de la langue de la page est maintenant possible à l’aide de Special:PageLanguage depuis MediaWiki 1.24.
 * Les utilisateurs peuvent modifier la langue du contenu d’une page qui est par défaut la langue par défaut du wiki . La langue des pages de l’espace de noms MediaWiki ne peut pas être modifiée.
 * La fonctionnalité doit être activée avec  et la permission   doit être attribuée à un groupe de droits utilisateur (qui pourra alors faire les modifications de la langue des pages).
 * La modification de la langue de page a pour effet la traduction de la page source et de ses unités dans la langue cible correcte. Au cas où la page traduite existe déjà dans la langue cible, le changement de la langue de page n’est pas autorisé.
 * L’API correspondante se trouve sur.


 * Que cela définit-il ?


 * Dans un SkinTemplate, cela ajoute un  autour du texte de la page. L’attribut   définit la direction d’écriture correcte. L’attribut   sera toujours le code racine, par exemple   même si   est indiqué.
 * Pour les pages de fichier, la page de langue est initialisée dans ImagePage.php, car il y a beaucoup de HTML destiné à être affiché dans la langue de l’utilisateur.
 * Dans Parser.php, cela initialise le style de numérotation dans la table des matières (TOC), et d’autres éléments non directement reliés, comme la grammaire. Pour faire cela uniquement, utilisez.
 * La direction du texte de différence (DifferenceEngine) est initialisée à la valeur de la langue du contenu de la page. Dans certains cas cela ne sera pas le même, et donc  pourra être utilisé.
 * Depuis, cela définit le comportement des mots magiques de formatage des nombres et des dates, y compris DIRECTIONMARK, mais pas les noms des espaces de noms retournés par NAMESPACE(E) car ils ne dépendent en fait que de la langue du site. Notez que la transclusion d’un modèle défini dans une langue A dans une page définie dans la langue B sera analysée en utilisant la langue B de la page cible.


 * Langues multiples dans une seule page
 * Les langues multiples dans une seule page ne sont en théorie pas prises en charge, mais de simples balises  peuvent être utilisées pour marquer le texte comme étant écrit dans une langue différente. Si la classe CSS est utilisée, les listes numérotées ou non, les liens de modification de sections seront affichés proprement lorsque l’attribut   est opposé à celui de la langue de contenu de la page. Cependant, des éléments définis dans l’analyseur, tels que la table des matières (TOC) et les mots magiques ne seront pas modifiés.


 * Visualiser / obtenir la langue de la page


 * JavaScript :  – notez que, quand lorsqu’on affiche par exemple l’historique d’une page, cela renvoie la langue de la page à laquelle l’historique est attaché, parce que la page historique n’a pas de classe   propre. Par exemple, à la fois   et   renvoient la langue de.
 * La langue du contenu de page est mentionnée dans l’affichage des informations de page (, liée depuis la boîte à outils)
 * La langue du contenu de page peut être récupérée dans l’API par api.php?action=query&prop=info



Structure du code
Premièrement, vous avez un objet Language en. Cet objet contient toutes les chaînes des messages localisables, et aussi d'autres paramètres et comportements importants spécifiques à la langue (majuscules, minuscules, affichage de dates, formatage de nombres, direction, règles de grammaire personnalisées etc.).

L'objet est construit à partir de deux sources : des versions sous-classées de lui-même (classes) et des fichiers Message (messages).

Il y a aussi la classe MessageCache, qui gère la saisie de texte via l'espace de noms MediaWiki. La plupart des internationalisations se font aujourd'hui via des objets et en utilisant la fonction de raccourci , qui est définie dans. L'ancien code peut toujours utiliser les anciennes fonctions, qui sont désormais considérées comme obsolètes au profit des objets Message mentionnés ci-dessus.

Voir aussi.



Objets Language
Il existe deux manières d'obtenir un objet langage. Vous pouvez utiliser les services globaux et    respectivement pour l'interface utilisateur et la langue du contenu. Pour un langage quelconque, vous pouvez construire un objet en utilisant en remplaçant   par le code de langue. Vous pouvez obtenir, un objet de la classe , en utilisant .) Vous pouvez également utiliser  si   peut déjà être un objet langage. La liste des codes est dans.

Les objets Language sont nécessaires pour effectuer des fonctions spécifiques au langage, le plus souvent pour formater les nombres, l'heure et la date, mais aussi pour construire des listes et d'autres choses. Il existe plusieurs couches de mise en cache et de fusion avec les langues de repli, mais ces détails ne sont pas pertinents pour l'utilisation normale.



Ancien système de traduction local
Avec MediaWiki 1.3.0, un nouveau système a été mis en place pour localiser MediaWiki. Au lieu de modifier le fichier de langue et de demander aux développeurs d'appliquer les modifications, les utilisateurs pouvaient modifier les chaînes d'interface directement sur leurs wikis. C'est le système utilisé depuis août 2005. Les utilisateurs peuvent trouver le message qu'ils souhaitent traduire dans Special:AllMessages, puis modifier la chaîne correspondante dans l'espace de noms. Une fois modifiés, ces changements sont visibles immédiatement. Il n'était plus nécessaire de demander une mise à jour et d'attendre que les développeurs vérifient et mettent à jour le fichier.

Le système est idéal pour les projets Wikipedia ; cependant, un effet secondaire est que les fichiers de langue MediaWiki livrés avec le logiciel ne sont plus tout à fait à jour, et il est plus difficile pour les développeurs de garder les fichiers sur méta synchronisés avec les fichiers de langue réellement actifs.

Comme les fichiers de langue par défaut ne fournissent pas suffisamment de matériel traduit, nous sommes confrontés à deux problèmes :


 * 1) Les nouveaux projets Wikimédia créés dans une langue qui n'a pas été mise à jour depuis longtemps, nécessitent une re-traduction totale de l'interface.
 * 2) Les autres utilisateurs de MediaWiki (y compris les projets Wikimedia dans la même langue) se retrouvent avec des interfaces non traduites. Ceci est particulièrement regrettable pour les langues plus rares qui n'ont pas beaucoup de traducteurs.

Ce n'est plus un si gros problème, car translatewiki.net est annoncé en bonne place et utilisé par presque toutes les traductions. Les traductions locales se produisent encore parfois, mais elles sont fortement déconseillées. Les messages locaux doivent pour la plupart être supprimés, déplaçant les traductions pertinentes vers translatewiki.net et ne laissant sur le wiki que la personnalisation spécifique au site ; il y a un énorme retard, en particulier dans les projets plus anciens, [//toolserver.org/~robin/?tool=cleanuplocalmsgs cet outil] aide au nettoyage.



Garder les messages centralisés et synchronisés
Les messages en anglais sont très rarement désynchronisés avec le code. L'expérience a montré qu'il est pratique d'avoir tous les messages en anglais au même endroit. La révision du texte anglais peut se faire sans référence au code, tout comme la traduction. Les programmeurs font parfois de très mauvais choix pour le texte par défaut.



Ce qui peut être localisé
Tant de choses sont localisables sur MediaWiki qu'elles ne sont pas toutes directement disponibles sur : voir translatewiki:Translating:MediaWiki. Si l'intervention d'un développeur est requise sur le code, vous pouvez la demander sur Phabricator, ou demander à translatewiki:Support si vous ne savez pas quoi faire exactement.


 * Espaces de noms - à la fois le noyau et les extensions, avec en plus les espaces de noms d'utilisateurs dépendants du genre
 * Jours de la semaine (et leur abréviation)
 * Mois (et leur abréviation)
 * Librairies pour Special:BookSources
 * Noms des habillages
 * Noms mathématiques
 * - pour la compatibilité avec les anciennes bases de données MediaWiki
 * Remplacements des options utilisateur par défaut
 * Noms des langues
 * Noms des pays (via )
 * Noms des monnaies (via )
 * Fuseaux horaires
 * Conversion d'encodage des caractères via
 * Conversion de majuscules en minuscules d'abord (nécessite des casemaps pour certains)
 * Conversion de majuscules en minuscules
 * Mots en majuscules
 * Coupure des mots en majuscules
 * Conversion de tous les caractères soit en majuscules soit en minuscules (case folding)
 * Supression de la ponctuation pour les recherches MySQL (search optimisé)
 * Obtenir le premier caractère
 * Encodage alternatif
 * Recodage pour la modification (puis recodage des entrées)
 * Obtenir le premier caractère
 * Encodage alternatif
 * Recodage pour la modification (puis recodage des entrées)




 * Langues de repli (c'est à dire, la ou les autres langues à utiliser quand une traduction n'est pas disponible et qui sont les plus proches plutôt que d'utiliser le repli par défaut qui est l'anglais)
 * Directionalité de l'écriture (LTR : de la gauche vers la droite, ou RTL : de la droite vers la gauche)
 * Caractère marquant la direction et dépendant de RTL
 * Flèche dépendant de RTL
 * Langues pour lesquelles l'italique ne peut pas être utilisé
 * Formatage des nombres (place de la virgule, par exemple ajouter ou pas des séparateurs de chiffres ; transformer les chiffres; transformer les séparateurs)
 * La troncature (multi-octets)
 * Les conversions grammaticales pour les langues flexionnelles (mots différents selon leur fonction grammaticale)
 * Transformations au pluriel
 * Formater les temporisations d'attente
 * Segmenter les diffs (chinois)
 * Convertir selon les variantes de la langue (différentes orthographes ou alphabets)
 * Options des préférences utilisateur spécifiques à la langue
 * Liens sur un mot avec suffixe et préfixe de lien, exemple : . Ce sont des lettres pouvant être accolées avant les crochets ouvrants ou après les crochets fermants d'un lien wiki, et qui apparaissent à l'écran comme si elles faisaient partie du lien lui-même (c'est à dire qu'elles en ont la même couleur et que vous pouvez cliquer dessus). Par défaut l'ensemble de ces caractères est « a-z » ; vous pouvez ajouter à cette liste les lettres accentuées et les caractères non latins utilisés dans votre langue.
 * Le code de langue (utilisé de préférence selon la dernière RFC en standard BCP 47, actuellement, avec sa base de données IANA associée. N'utilisez pas les codes obsolète, ceux des grands parents ni ceux qui on tun usage privé : vérifiez ce à quoi ils correspondent en standard ISO 639, et évitez les codes assignés aux ensembles et aux familles de langues en ISO 639-5, et les codes ISO 639 qui n'ont pas été importés imported dans la base de données de l'IANA pour le BCP 47)
 * Type de mise en valeur
 * L'extension possède un fichier de page spéciale par langue,   où   représente le code de langue.

Fonctionnalité soignée :


 * I18N
 * Formatage des chiffres romains

Espaces de noms


Actuellement la traduction des espaces de noms est désactivée sur translatewiki.net; vous devez donc la faire personnellement dans Gerrit, ou enregistrer une tâche demandant à ce que quelqu'un d'autre la fasse.

Pour permettre aux espaces de noms personnalisés introduits par votre extension d'être traduits, créez un fichier  similaire à :

Puis chargez-le à partir du fichier  en utilisant ExtensionMessagesFiles de cette manière :

Dorénavant, lorsqu'un utilisateur installe MyExtension sur son wiki finois (fi), l'espace de noms personnalisé sera traduit automatiquement en finnois sans rien faire !

Pensez également à enregistrer le ou les espaces de noms de votre extension sur la page.



Alias des pages spéciales
Voir la page du manuel concernant les Pages spéciales pour une information plus à jour. Ce qui suit ne semble pas être valide.

Créez un nouveau fichier pour les alias des pages spéciales dans ce format :

Puis chargez-le à partir du fichier  en utilisant ExtensionMessagesFiles de cette manière :

Lorsque votre code de page spéciale utilise soit soit  (dans la classe qui fournit Special:MyExtension), l'alias traduit sera utilisé s'il existe.



Alias des espaces de noms
Les alias des espaces de noms sont des noms supplémentaires pouvant être utilisés pour adresser les espaces de noms existants. On ne s'en sert que rarement, mais le fait de ne pas les avoir quand ils sont nécessaires, crée habituellement des ravages dans les wikis existants.

Vous avez besoin des alias pour les noms des espaces de noms :


 * 1) Lorsqu'une langue possède des variantes, et que ces dernières appellent certains espaces de noms de façon différente, et que vous voulez que les contributeurs puissent utiliser ces façons. Les variantes sont sélectionnables dans les Préférences utilisateur. Les utilisateurs voient toujours la variante qu'ils ont sélectionnée, sauf quand il s'agit de wikicode, mais quand ils modifient ou qu'ils font une recherche, une variante arbitraire peut être choisie.
 * 2) Quand la langue d'un wiki existant, la ou les langues  de repli, ou la localisation sont modifiées, alors certains espaces de noms changent également. Ainsi pour ne pas casser les liens déjà présents dans le wiki, et qui utilisent les anciens noms des espaces de noms, vous devez ajouter chaque nom d'espace de noms qui a été modifié, à son alias de nom d'espace de noms, au moment ou bien juste avant que la modification soit faite.

Les noms anglais des espaces de noms génériques sont toujours présents dans les alias des espaces de noms dans toutes les traductions, par conséquent vous n'avez pas besoin et vous ne devez pas les ajouter.

Les alias ne peuvent pas être traduits sur, mais peuvent être demandés ici ou sur : voir les Alias des noms des espaces de noms sur translatewiki.



Paramètres internationalisés
Certains paramètres linguistiques peuvent dépendre de la géographie; MediaWiki n'a pas ce concept de région et ne connait que les langues et leurs variantes.

Ces paramètres doivent avoir été définis une fois en tant que langue par défaut, ensuite les wikis individuels peuvent la modifier comme ils le souhaitent, dans leur configuration.



Formats de la date et de l'heure
L'heure et les dates sont affichées sur les pages spéciales et similaires. Le format par défaut de l'heure et de la date sont utilisés pour les signatures, ce qui en fait le format le plus utilisé et le plus communément compris par les utilisateurs de cette langue. Les utilisateurs anonymes verront également le format par défaut. Les utilisateurs enregistrés peuvent choisir d'autres formats dans leurs Préférences.

Si vous êtes familier avec le format du time de PHP, vous pouvez essayer de construire des formats par vous-même. MediaWiki utilise une chaîne de format similaire avec quelques caractéristiques supplémentaires. Si vous ne comprenez pas la phrase précédente, ce n'est pas grave. Vous pouvez fournir une liste d'exemples pour.

Voir les Sources des messages des messages système.

Voir aussi

 * MediaWiki multilingue
 * Obtenir le nom des langues à partir de leurs codes est possible en utilisant la fonction noyau documentée dans mots magiques.