Documentation[voir] [modifier] [historique] [purger]

Ce modèle sert à indiquer la langue d’un texte, notamment pour les synthétiseurs vocaux, l’indexation des inclusions de mots en langues différentes par les moteurs de recherche, et l'affichage de certains caractères variant selon la langue[note 1]. Il permet aussi la personnalisation de la présentation des textes, en permettant aux utilisateurs de paramétrer les polices de caractères pour chaque écriture.

La mention d’un changement de langue est une information essentielle pour l’accessibilité du contenu. Elle est également utile aux outils de traduction automatique.

Les normes internationales d’accessibilité imposent de signaler un changement de langue, excepté « pour un nom propre, pour un terme technique, pour un mot dont la langue est indéterminée ou pour un mot ou une expression faisant partie du langage courant »[1], pour lesquels cela n’a pas de caractère obligatoire. Le groupe de travail sur les directives d'accessibilité du contenu Web du W3C souligne que des mots pris individuellement peuvent « faire partie » de la langue qui les accueille ; il n’y a donc pas lieu de signaler dans ces situations un changement de langue ; un critère pour décider de la stratégie à employer dans ces situations peut être de vérifier si « le mot se prononcerait de la même façon dans la langue du texte qui l’entoure (en dehors de simples problèmes d’accent ou d’intonation) »[2].

Les noms en « latin » de la nomenclature scientifique sont seulement « réputés latins » puisqu'il s'agit souvent d'un latin de cuisine incorporant de nombreux éléments de grec, de noms propres, de noms vernaculaires en langue locale, etc. Il est inopportun de leur attribuer sans distinction la valeur de latin pour transformer une prononciation « à la française » en prononciation latine avec un lecteur d'écran. Dans ce contexte, il est plus sage de ne pas avoir recours au modèle {{Langue|la|}}[3]. (voir la discussion)

Syntaxe

  • {{Langue|code de langue|texte=texte}}
  • {{Langue|code de langue|texte=texte|trans=trans|dir=direction-langue}}

Syntaxe simplifiée :

  • {{Langue|code de langue|texte}}
  • {{Langue|code de langue|texte|trans=trans|dir=direction-langue}}

Dans le cas de la syntaxe simplifiée, il faut utiliser le code « {{=}} » pour faire apparaître le signe « = », car le texte n'apparaît pas si un simple « = » est utilisé dans le code.

Paramètres

Ce modèle indique la langue d’un texte, notamment pour les synthétiseurs vocaux, l’indexation correcte des inclusions de mots en langues différentes par les moteurs de recherche, et l'affichage de certains caractères variant selon la langue. Dans le cas d'une citation, utilisez {{Citation étrangère}} à la place.

Paramètres du modèle[Modifier les données du modèle]

ParamètreDescriptionTypeÉtat
Code de langue1

Étiquette d’identification IETF ou nom français de la langue du texte inclus.

Par défaut
en
Exemple
« en », « it », « anglais », « italien », etc.
Chaîneobligatoire
Texte2 texte

Texte en langue étrangère. À mettre en italique si nécessaire, sauf si ce sont des caractères non latins.

Valeur automatique
Chaîneobligatoire
Texte (obsolète)3

Texte en langue étrangère utilisé uniquement si le paramètre 1 contient la direction de la langue rtl ou ltr et le paramètre 2 le code de la langue.

Valeur automatique
Chaîneobsolète
Translittérationtrans

Translittération du texte. Attention, ce n’est pas une traduction, mais une conversion lettre à lettre la plus proche possible de l’orthographe originale.

Chaînefacultatif
Directiondir

Direction de la langue : rtl (de droite à gauche) ou ltr (de gauche à droite) ; normalement inutile car le modèle détermine la direction en fonction du code de langue.

Par défaut
Dépend du code de langue
Exemple
« rtl », « ltr »
Chaînefacultatif
Classes CSS additionnellesclass

Classes CSS supplémentaire. Fonctionnalité avancée à n'utiliser qu'en cas de besoin.

Ligne de textefacultatif

Exemples

Les effets sont a priori non visibles à l’écran (la police utilisée dépend du logiciel configuré par l’utilisateur), sauf ceux concernant la position (à droite ou à gauche) des ponctuations en début ou fin de textes écrits de droite à gauche et pour les langues qui utilisent des sinogrammes comme le chinois ou le japonais.

  • {{Langue|de|texte=Die {{II}}. Republik}}
    Die II. Republik
  • {{Langue|ar|texte=العربية…|dir=rtl}}
    العربية…
  • {{Langue|allemand|Die ewige Wiederkehr des Gleichen}}
    Die ewige Wiederkehr des Gleichen
  • {{Langue|es|¿Qué tal güey?}}
    ¿Qué tal güey?
  • {{Langue|arabe|العربية|trans=al-ʻarabīyah|dir=rtl}}
    العربية (al-ʻarabīyah)
  • {{Langue|grc|texte=ἡμέρα|trans=hēméra}}
    ἡμέρα (hēméra)
  • {{Langue|ja|クレヨンしんちゃん|trans=Kureyon Shin-chan}}
    クレヨンしんちゃん (Kureyon Shin-chan)
  • {{Langue|ja|今}}
  • {{Langue|zh|今}}

Dans les deux derniers exemples, notez la différence des glyphes suivant la langue.

Liens internes

Pour créer un lien non redirigé, la syntaxe à utiliser est la suivante : ''{{Langue|en|[[New York Stories]]}}''.

Dans le cas d'un lien redirigé, la syntaxe à privilégier est celle-ci : ''[[Deep Impact (film)|{{Langue|en|Deep Impact}}]]'' (voir cette discussion).

Codes de langue

Codes principaux

Langue Code Notes
allemand de
anglais en
arabe ar écriture avec l’alphabet perso-arabe
catalan ca
espagnol es
grec ancien grc avant 1453
grec moderne el depuis 1453
italien it
latin la alphabet de base normalement réduit (sans j, u, w, y) mais diacritiques possibles (usage principalement didactique) pour différencier les voyelles brèves ou longues
occitan ; provençal oc

Tous les codes

La liste complète des langues prises en charge se trouve sur la page Module:Langue/Liste des langues.

Si le code de langue dont vous avez besoin manque, demander sur le projet modèle. Les codes de langue compatibles sont ceux qui suivent la recommandation BCP 47 de l’IETF. La liste des composants utilisables issus notamment des normes ISO 639, ISO 15924, ISO 3166-1, M.49 est publiée à l’adresse suivante : http://www.iana.org/assignments/language-subtag-registry. Pour rechercher un code de langue, ce lien (en anglais) est recommandé.

Certaines erreurs courantes sont automatiquement détectées et signalées dans la catégorie:Page avec code de langue invalide.

Système d'écriture

La plupart des langues ont un système d’écriture par défaut. Lorsque la langue est écrite avec un autre système d’écriture, il est utile de le préciser, le modèle ou le navigateur pourra alors adapter le sens d'écriture ou la fonte utilisée. Le système d’écriture est précisé, le cas échéant, en un code à quatre lettres suivant le code langue principal, séparé par un trait d’union (-).

Par exemple, l'arabe (ar) est considéré comme écrit avec des caractères arabes, de droite à gauche. Si le texte est une translittération de l'arabe en alphabet latin, écrit de gauche à droite, il faut utiliser le code de langue ar-Latn.

Cas spécifique pour le mongol, il vaut mieux utiliser mn-Mong pour le mongol bitchig (mongol dit traditionnel, six millions de personnes en Chine et une partie de la population de Mongolie (trois millions d'habitants). Tandis que mn-Cyrl, unique écriture officielle du Pays mongol entre 1941 et 1991 (le bitchig est de nouveau officiel depuis 1991). Cas particulier encore, mn-Cyrl mongol cyrillique est affiché comme mn dans le cas des liens web.

Exemples de code système d’écriture :

Pour la liste complète et pour tester si un code est valide, voir ce lien (en anglais) ; dans la boîte de dialogue List, sélectionner Regions puis cliquer sur List.

Variété géographique

Pour prendre en compte les variétés géographiques, un code pays ISO 3166-1 à deux lettres peut être ajouté, séparé par un trait d’union (-). Le code pays est toujours écrit en capitales (au contraire du code langue qui est toujours en minuscules).

Exemple : fr-CA pour le français canadien.

Pour les dialectes d'une région n'ayant pas de code de langue propre, il faut utiliser le code de langue le plus proche.

Exemple : oc pour le gascon et le provençal, qui sont des dialectes de l'occitan (ou langue d’oc).

Changer l’apparence d’une langue

Afin de changer le style des caractères d’une langue en particulier, on peut se servir de la syntaxe CSS dédiée :lang(code-langue) dans son common.css.

Exemples :

/* personnalisation de l’écriture latine étendue, pour la langue : vietnamien ;
   ou pour l’API */
:lang(vi) {font-family: Segoe UI, Tahoma, Verdana, FreeSans, sans-serif}

/* personnalisation de l’écriture grecque, pour les langues : grec moderne (monotonique), grec ancien (polytonique) */
:lang(el), :lang(grc) {font-family: Athena, Segoe UI, Lucida Sans Unicode, Arial Unicode MS, Tahoma, FreeSans, sans-serif}

/* personnalisation de l’écriture cyrillique, pour les langues : russe, bulgare, serbe, macédonien, mongol moderne... */
:lang(ru), :lang(bg), :lang(sr), :lang(mk), :lang(mn) ou mieux :lang(mn-Cyrl) {font-family: Segoe UI, Tahoma, sans-serif}

/* personnalisation de l’écriture arabe, pour les langues : arabe, persan, ourdou ;
   taille augmentée mais interlignage par défaut conservé */
:lang(ar), :lang(fa), :lang(ur) {font-family: Segoe UI, Tahoma; font-size: 1.25em;}

/* personnalisation de l’écriture thaïe, pour la langue : thaï ;
   taille réduite mais interlignage par défaut augmenté */
:lang(th) {font-family: Segoe UI, Tahoma, FreeSans; font-size: 0.87em; line-height: 1.4;}

Il est aussi possible de simplement faire apparaître qu'un mot ou expression sont dans une autre langue, en changeant la police d'affichage par l'ajout de cette ligne dans son CSS personnalisé :

/* Utiliser la police « serif » pour les éléments HTML de tout type (« span », « div », « td », etc.)
  qui ont un attribut « lang="code-de-langue" » de valeur quelconque */
[lang] { font-family: serif; }

/* Utiliser la police « serif » seulement pour les éléments HTML de tout type
   qui ont un attribut « lang="el" » pour indiquer la langue grecque moderne */
[lang=el] { font-family: serif; }

/* Utiliser la police « serif » seulement pour les éléments HTML de tout type
   qui ont un attribut « lang="zh" », avec un éventuel suffixe comme « lang="zh-Hant" » */
[lang|=zh] { font-family: serif; }

/* Utiliser la police « serif » seulement pour les éléments HTML de type « span »
   ayant un attribut « lang="code-de-langue" » de valeur quelconque */
span[lang] { font-family: serif; }

Un sélecteur CSS sur le nom de l'attribut entre crochets droits [lang=code] ou [lang|=code] est cependant moins puissant que le pseudo-sélecteur :lang(code), lequel permet aussi de trouver les correspondances par code d'écriture indépendamment des langues qui utilisent cette écriture, en plaçant dans son paramètre un joker * à la place du code langue de base, suivi d'un tiret et d'un code d'écriture ; l'utilisation d'un joker requiert cependant d'échapper ce joker, ou de placer l'identificateur de langue entre guillemets droits :

/* Utiliser la police « serif » seulement pour les éléments HTML de tout type
    et dont le contenu est dans une langue utilisant l'écriture grecque. */
:lang(\*-Grek)  { font-family: serif; } /* joker avec un échappement */
:lang("*-Grek") { font-family: serif; } /* code complet entre guillemets droits */

Notes et références

Notes

  1. Par exemple les sinogrammes : voir ce tableau ou « Pourquoi utiliser l'attribut du langage ? », sur w3.org, W3C (consulté le ).

Références

  1. (en) Web Content Accessibility Guidelines (WCAG) 2.0, 3.1.2 Language of Parts.
  2. (en) Understanding WCAG 2.0, Language of Parts : Understanding SC 3.1.2. Cette page recommande ainsi de ne pas signaler par un attribut spécifique une utilisation du mot « rendezvous » au sein d’un texte en anglais, ou du mot « podcast » au sein d’un texte en français.
  3. https://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-other-lang-id.html

Voir aussi