Langue

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Language and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎català • ‎dansk • ‎español • ‎français • ‎polski • ‎português • ‎português do Brasil • ‎čeština • ‎русский • ‎تۆرکجه • ‎فارسی • ‎پښتو • ‎中文 • ‎日本語 • ‎한국어
docs i18n Internationalisation · Messages système · API Messages · Langue · translatewiki.net · Systèmes d’écriture · Directionalité
Voir aussi Manuel:architecture MediaWiki#Langues (devrait être fusionné ici ?)

Dans MediaWiki, il y a divers types de langues :

  • La langue du contenu du site ($wgContLang , basé sur $wgLanguageCode ), qui devrait généralement rester la même aussi longtemps que le wiki existe.
  • La langue d’interface utilisateur ($contextSource->getLanguage() appelée précédemment $wgLang ), qui peut être changée dans vos préférences ou avec le paramètre ajouté &uselang=xyz 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 getPageLanguage() dans son titre, qui représente la langue dans laquelle le texte source du wiki est écrit.
    • La variante de langue utilisateur (page view language) 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 &variant (ou $wgVariantArticlePath) 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 getPageViewLanguage() 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

Ne pas confondre avec les codes de projets Wikimedia ; voir également les codes de langue sur MétaWiki.

Un code de langue est une abréviation standard valide désignant une langue prise en charge par MediaWiki,[1] 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.[2]

Dans l’exemple ci-dessous, MediaWiki:Message/fr, fr est le code de langue pour le français.

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

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 CLDR ), souvenez-vous en !

Langues de repli

Séquences 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 frc (français cajun) se replie sur le code de langue fr (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 languages/messages/MessagesXX.php associé. Par exemple MessagesFrc.php (grep fallback).

Langue de contenu du site

Afficher/obtenir la langue du contenu du site

JavaScript :

mw.config.get( 'wgContentLanguage' );

Langue de l’interface utilisateur

Version de MediaWiki : 1.18
Valeur par défaut
Initialisé par
  • Spécial:Préférences
  • &uselang=zxx dans l’URL (voir uselang)
  • &variant=xy (ou $wgVariantArticlePath) 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

Version de MediaWiki : 1.18
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 $wgContLang .
  • toutes les autres pages sont $wgContLang par défaut.
Configuration
Les extensions peuvent modifier toutes les autres pages au moyen de l'accroche PageContentLanguage. La valeur pour les pages spéciales, CSS, JS, et pour les pages des espaces de noms MediaWiki ne peuvent pas être modifiées.
Exemples
L’extension Translate l’utilise pour la fonctionnalité de traduction de page. Voir translatewiki:Project list/ar comme une traduction de translatewiki:Project list. La direction des lignes y est ainsi initialisée correctement à « de droite à gauche » pour l’arabe.
Version de MediaWiki : 1.24
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 de contenu d’une page qui est par défaut la langue par défaut du wiki ($wgContLang). La langue des pages de l’espace de noms MediaWiki ne peut pas être modifiée.
La fonctionnalité doit être activée avec $wgPageLanguageUseDB = true et les permissions doivent être définies pour 'pagelang'.
La modification de la langue de page a pour effet de déplacer la page source des traductions et ses unités de traduction vers la nouvelle page cible. Au cas où la page de traduction cible existe déjà, le changement de la langue de page n’est pas autorisé.
L’API correspondant se trouve sur API:SetPageLanguage.
Que cela définit-il ?
  • Dans un SkinTemplate, cela ajoute un <div lang="xyz" dir="ltr/rtl" class="mw-content-ltr/rtl">...</div> contenant le texte de la page. L’attribut dir définit la direction d’écriture correcte. L’attribut lang sera toujours le code racine, par exemple de même si de-formal 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 parserOptions->setTargetLanguage().
  • 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 $diffEngineObject->setTextLanguage( $code ) pourra être utilisé.
  • Depuis 1.19, 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
Des langues multiples dans une seule page sont en théorie non prises en charge, mais de simples balises <div lang="xyz" dir="ltr/rtl" class="mw-content-ltr/rtl"> 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 à puces ou numérotées (balises ul/ol et li en HTML), les listes de définitions et blocs indentés (balises dl et dt/dd en HTML), les liens de modification de sections et divers autres détails de l’interface seront affichés avec les marges et alignements corrects lorsque l’attribut dir 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 : mw.config.get( 'wgPageContentLanguage' ) – notez que, quand lorsqu’on affiche par exemple l’historique d’une page, cela retourne la langue de la page à laquelle l’historique est attaché, parce que la page historique n’a pas elle-même de classe mw-content-ltr/rtl (elle s’affiche dans la langue de l’interface utilisateur mais les contenus historiques individuels d’une page s’affichent dans la langue de cette page). Par exemple, à la fois /wiki/NomDePage et /w/index.php?title=NomDePage&action=history retournent la langue de NomDePage. 1.19+
  • La langue du contenu de page est mentionnée dans l’affichage des informations de page (action=info, liée depuis la boîte à outils) 1.21+
  • La langue du contenu de page peut être récupérée dans l’API par api.php?action=query&prop=info 1.22+


Notes

  1. Voir languages/data/Names.php.
  2. En dépit de ceci, encore en 2012, la validation des codes langue n’est toujours pas un problème résolu. Consultez Language validation in MediaWiki, par Niklas Laxström, 28 aôut, 2012.

Voir aussi

  • MediaWiki multilingue
  • Obtenir le nom des langues à partir de leurs codes est possible en utilisant la fonction noyau {{#language:<code>}} documentée dans mots magiques.