Navigation

  • Articles
Manteaux Jusqu'à Mcgregor Achetez 50 Vestes Et Prix Réduit QCoexBWErd

Repères

See this site in English

recherche

Profil

À CuirSac Boîte À Main Bijoux Boîte Boîte Bijoux CuirSac Main D29IEH

Technologie

  • (X)HTML
  • CSS
  • DOM
  • Gris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1J
  • PNG
  • RSS

Thème

Openweb.eu.org > Articles  > Spécifier la langue d’un document (X)HTML

Abstract

Entre les attributs HTML, les éléments meta et les en-têtes HTTP, les moyens de spécifier la ou les langue(s) d’une page Web ne manquent pas. Mais la pratique montre l’existence de deux besoins bien différents en la matière : il importe de différencier langue primaire d’une ressource Web et langue de traitement d’un contenu, et d’utiliser à bon escient les outils à notre disposition pour les indiquer.

D Chaussures Chaussure Brogues Cuir Homme v0nw8mN

Article

De nombreuses sources encouragent les auteurs à préciser la langue de leur document : les directives d'accessibilité, les bonnes pratiques qualités, les spécifications , les conseils pour l'internationalisation, l'optimisation du reférencement, etc. Le plus souvent, cette démarche semble d'autant plus simple que le document est rédigé dans une langue unique, ou comporte tout au plus quelques citations dans une autre langue. Cependant, même dans ces cas simples, ce sont en fait deux notions bien distinctes qui sont à l'oeuvre : les langues primaires de la ressource et les langues de traitement de son contenu. Toutes deux répondent à des problématiques opérationnelles différentes, que nous allons analyser ici. Nous pourrons alors déterminer quelles sont les techniques appropriées pour communiquer efficacement ces deux types d'informations aux agents utilisateurs, en précisant également les normes de codification des langues qui assureront la pertinence de ces informations.

Pourquoi spécifier la langue ?

Les informations de langue sont couramment jugées utiles à de multiples points de vue.

Par exemple, il est possible de servir un contenu différent à un utilisateur « à la demande », en fonction de la configuration de son client Web : on peut donc prévoir plusieurs versions linguistiques d'un même document et délivrer ce contenu en fonction des préférences de chaque utilisateur. L'ensemble de ces versions forme une ressource unique, caractérisée par la liste des langues dans lesquelles elle est disponible.

De même, il peut s'agir de faciliter et d'améliorer la précision du référencement d'une ressource dans des bases de données documentaires, dans des annuaires ou auprès de moteurs de recherche. Là encore, plusieurs langues peuvent éventuellement être associées à une seule ressource, afin d'indiquer que celle-ci est disponible pour différents publics linguistiques.

Dans ces deux premiers cas, l'information de langue ne porte donc pas nécessairement sur une langue unique. Elle donne d'autre part une indication globale sur la ressource Web prise dans son ensemble, et non sur le détail de son contenu.

Dans d'autres cas, en revanche, c'est à l'intérieur même du document que l'on va rencontrer des changements de langue d'une section à une autre, chaque section étant caractérisée par une langue unique. L'agent utilisateur devra alors être informé de ces changements, afin de restituer le contenu de la façon la plus juste et la plus compréhensible possible. Ce sera le cas, par exemple, dans les contextes suivants:Gris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1J

  • Les navigateurs vocaux ( Home Page Reader 3.+, EmacSpeak, le futur Opera 8), ainsi que les lecteurs d'écrans (Jaws 5+, Windows-Eyes) doivent déterminer dans quelle langue le synthétiseur vocal doit travailler pour adapter la prononciation de manière à rendre compréhensibles tous les termes lus. Les informations de langue leur permettront de passer d'une langue à l'autre à la volée lors de la lecture, sans intervention de l'utilisateur ;
  • Les correcteurs orthographiques doivent déterminer quel dictionnaire utiliser pour les différents termes présentés dans les documents qui leur sont soumis. Là encore, la précision avec laquelle les changements de langue seront indiqués influera fortement sur la qualité du résultat ;
  • Les traducteurs ont des besoins similaires, pour déterminer quels termes doivent être traduits et en quelle langue : il est inutile de traduire des termes déjà signalés dans la langue cible ;
  • Les navigateurs graphiques peuvent avoir à fournir une présentation spécifique d'un contenu selon sa langue : choix d'une police de caractères, de l'orientation gauche-droite ou inversement, voire d'autres styles mettant en valeur un passage dans une langue donnée.

Cette fois, l'information de langue est contextuelle, et porte à chaque fois sur une langue unique : un terme à prononcer, à traduire ou à corriger appartient à une langue et à une seule.

Ce rapide examen de quelques cas courants nous montre donc que nous avons besoin de délivrer deux types d'informations de langue bien distinctes. Il est temps à présent de les définir précisément.

Langue primaire et langue de traitement

La langue primaire du document constitue en fait une métadonnée. Elle renseigne sur le document « pris comme un tout », et non sur telle ou telle partie de son contenu. Malgré l'ambiguïté de la norme 4.01 sur ce point, cette information n'est pas destinée au traitement du contenu, mais à celui de la page en tant que ressource Web, lorsqu'il s'agit par exemple d'adresser une version linguistique à l'utilisateur en fonction de ses préférences (autrement dit une représentation de la ressource parmi celles disponibles), ou d'indexer une ressource selon une langue de référence. On peut retenir comme règle que la ou les langues primaires du document désignent la ou les langues du public visé.

La langue de traitement du contenu, en revanche, est une donnée contextuelle qui va permettre aux agents utilisateurs de traiter le contenu de manière correcte. Ce contenu n'a qu'une seule langue de traitement, quel que soit ce dernier (synthèse vocale, affichage, traduction, etc.)

Tissu Idees Fait MainSac Main De Igybf7vY6

Prenons quelques exemples pour bien percevoir la nature de cette distinction :

  • Un même article est publié dans deux versions linguistiques (autrement dit, deux représentations de la même ressource) : l'une est en français et l'autre en anglais. Cet article cite sans le traduire un auteur espagnol. Notre article a donc deux langues primaires : le français et l'anglais. L'indication de celles-ci devra permettre à un moteur de recherche de présenter notre article dans ses résultats, que l'utilisateur ait coché l'option « Rechercher les pages en français » ou « Rechercher les pages en anglais », et de l'ignorer en revanche s'il ne cherche que des documents en allemand. Enfin, le fait que l'article comporte une citation en espagnol ne le rend pas pertinent dans les recherches citées ci-dessus, mais ce changement de langue devra être signalé à un traducteur automatique : cette information doit donc être précisée à un autre niveau que les précédentes ;
  • Une page d'accueil est bilingue, avec deux sections identiques, l'une en anglais et l'autre en français : cette page d'accueil a également deux langues primaires, l'anglais et le français. Elle devient pertinente aux yeux d'un moteur de recherche aussi bien pour un utilisateur francophone qu'anglophone. Par ailleurs, lors de sa lecture par une synthèse vocale, l'application utilisée devra basculer d'une langue à l'autre au bon moment. Là encore, et bien qu'il s'agisse toujours des mêmes langues, ces informations linguistiques doivent être précisées à des niveaux différents
  • Une page d'un site francophone cite des sources anglo-saxonnes sans les traduire : sa langue primaire reste le français, car elle ne s'adresse pas à un public non francophone. Elle comporte cependant deux langues de traitement successives au fil du contenu. Si un lecteur anglo-saxon fait appel à un traducteur automatique, seules les sections en français devront être prises en compte et traitées par celui-ci ;
  • L'article que vous lisez actuellement n'existe que dans une seule version linguistique (le français) et ne comporte pas de citations dans une autre langue: sa langue primaire est identique à sa langue de traitement unique. Il reste utile, même dans ce cas, de préciser ces deux informations afin que la page soit correctement indexée par un moteur de recherche et puisse être correctement lue par un lecteur d'écran, ou traduite automatiquement.

Cette distinction étant à présent établie, quels sont les moyens appropriés pour préciser ces deux informations ?

Quelles techniques sont à notre disposition pour transmettre les différentes informations de langue ?

Plusieurs mécanismes distincts permettent de transmettre une information de langue concernant un contenu : l'en-tête envoyée par le serveur, les éléments de metadonnées contenus dans la page, et enfin les attributs lang et xml:lang qui sont également indiqués dans le document lui-même.

  • L'en-tête Content-Language : cette donnée est gérée et envoyée au niveau même du serveur. Le champ d'en-tête est défini dans 1.1 en ces termes :

    Le champ d'entête-entité Content-Language décrit la ou les langue(s) naturelle(s) du public visé par l'entité incluse. Il faut noter que ceci pourrait ne pas correspondre à toutes les langues utilisées dans le corps de l'entité.

    Content-Language  = "Content-Language" ":" 1#language-tag
    Gris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1J

    [...] Le rôle essentiel de Content-Language est de permettre à un utilisateur d'identifier et de différencier des entités en fonction de ses propres préférences linguistiques. Ainsi, si le contenu du corps de l'entité est destiné uniquement à un public comprenant le danois, le champ approprié sera Content-Language: da

    Lorsqu'aucun champ Content-Language n'est spécifié, l'indication donnée par défaut est que ce contenu est destiné à tous les publics, quelque-soit leur langue. Ceci peut signifier soit que l'expéditeur ne considère pas ce contenu comme étant propre à quelque langue naturelle que ce soit, soit qu'il ignore à quel public linguistique il est destiné.

    Plusieurs langues PEUVENT être énumérées pour des publics multiples. Par exemple, une reproduction du "Traité de Waitangi", présentée simultanément dans les versions originales en maori et en anglais, fera appel à Content-Language: mi, en

    Cependant, le seul fait que plusieurs langues soient présentes dans une entité n'induit pas que celle-ci soit destinée à un public multilingue. Par exemple, une initiation pour débutants du type "Première leçon de latin" serait clairement destinée à un public francophone. Dans un tel cas, le champ Content-Language approprié ne précisera que la valeur "fr".

  • La métadonnée <meta http-equiv="Content-Language"> : cette information permet d'indiquer dans le document la même information que celle transmise dans l'entête .
  • Les attributs lang et xml:lang : Ces informations sont indiqués dans le document lui-même pour les différents éléments qui le composent. Les valeurs possibles de l'attribut lang sont définies par la spécification 4.01 sous la forme :

    Image Sac 2 Bandoulière Banane De ZaraBananeSacs cuTK13lFJ5

    La valeur de l'attribut lang est un code de langue qui identifie une langue parlée, écrite, ou utilisée d'une manière ou d'une autre pour la communication d'informations entre personnes.

Pour déterminer quels outils conviennent pour préciser respectivement langue primaire et langue de traitement, la clé est le fait que la langue de traitement du contenu est unique, alors que les langues primaires ne le sont pas nécessairement. Or :

  • En-tête Content-Language et meta autorisent la mention de plusieurs langues;
  • les attributs lang et xml:lang n'admettent qu'une valeur unique.

Nous pouvons donc adopter à partir de ce constat des règles de bonnes pratiques simples.

Comment spécifier la ou les langues primaires d'un document

La ou les langues primaires d'une ressource seront indiquées via l'entête Lemargo Pour Ap06a Chaussures 6155001 Marron Chaussure FemmeJef PukiXZOT Content-Language :

Content-Language: fr
Content-Language: fr,en

Cette information sera reproduite via un élément meta :

  • La traditionnelle meta http-equiv="Content-Language" content="fr" />
  • Eventuellement complétée par une meta plus spécifique, telle que, par exemple, le Dublin Core qui définit la <meta name="DC.Language" scheme="RFC3066" content="fr" />.
  • Gris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1J

Ceci garantit la permanence de l'information, que le document soit consulté en ligne ou après enregistrement local.

Notons que si plusieurs langues primaires doivent être indiquées, elles sont séparées dans tous les cas par des virgules, les espaces n'étant pas significatifs :

<meta http-equiv="Content-Language" content="fr,en" />

Spécifier la langue de traitement d'un contenu

L'élément html étant l'élément racine de tout document , tout ce qu'il contient hérite par défaut de la valeur de ses attributs lang et/ou Gris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1Jxml:lang. Tout le contenu de la page (title et autres meta compris) sera donc réputé être dans la langue ainsi indiquée, sauf précision contraire. On écrira donc :

  • En (type de contenu text/html) :

    <html lang="fr">
  • En traité en tant que (type de contenu text/html) :

    <html lang="fr" xml:lang="fr" ...>
  • En traité en tant que (type de contenu application/xhtml+xml) :

    <html xml:lang="fr" ... >

Si une section quelconque du contenu a une langue différente, il suffit de l'indiquer dans les attributs lang et xml:lang de son élément conteneur. Par exemple, pour une citation en anglais dans un document en français :

  • En (type de contenu text/html) :

    <q lang="en">...</q>
  • En traité en tant que (type de contenu text/html) :

    <q lang="en" xml:lang="en">...</q>
  • En traité en tant que (type de contenu application/xhtml+xml) :

    <q xml:lang="en">...</q>

Rappelons que l'attribut xml:lang est l'équivalent de l'attribut lang. Pour des raisons de compatibilité, la spécification conseille d'utiliser simultanément les deux attributs lorsqu'on tire profit de la nature hybride du 1.0 (à la fois Tous Les Homme Pas ProduitsFemme Cher Sacs lJ3FKT1c et ) pour le servir avec le type de contenu text/html.

Les attributs lang et xml:lang peuvent être utilisés pour tous les éléments , à l'exception de :

Plus Femmes Réel Bandoulière Argent Épaule Femme Sacs Mode Ov8nmN0w
  • applet, base, basefont, br, param et frameset pour lesquels il serait dénué de sens ;
  • frame, script, et iframe. Dans ces cas, la langue de traitement du contenu inclus dans un cadre ou généré par un script ne peut être déclarée qu'à l'intérieur du document incorporé ou du code produit par le script, et non au niveau du document parent.

En l'absence d'un balisage spécifique et/ou d'attributs lang - xml:lang valides pour le conteneur (iframe par exemple), les éléments génériques divBelair Courte L Paris Doudoune Chaude Didou Et cjR354LqSA et span permettent de préciser un changement de langue en regroupant plusieurs éléments :

<div lang="en">
   <p>...</p>
   <ul>
      <li>...</li>
      <li>...</li>

   </ul>
</div>

Enfin, les attributs lang et xml:lang s'appliquent aussi bien au contenu des éléments qu'à celui de leurs attributs, comme le montre cet exemple donné pour l'élément link par la spécification 4.01 :

<link lang="en"
title="english version"
type="text/html"
rel="alternate"
hreflang="en"
href="http://example.org/english_doc.html">

Par défaut, la langue d'un attribut est donc celle de son élément. Il est impossible de préciser que la langue du contenu d'un attribut est différente de celle de l'élément concerné. Ceci concernerait concrètement par exemple :

<q lang="en" title="Ici, une information français">
Some english text
</q>

On évitera donc ce type de conflit en rédigeant dans la même langue le contenu de l'élément et celui de ses attributs.

Quel standard adopter pour la désignation des langues ?

La spécification 4.01 fait actuellement référence à la norme 1766 pour la désignation des langues. Celle-ci a cependant été actualisée par la norme 3066 qui doit donc être prise comme référence.

Gris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1J

Concrètement, on utilisera un code de langue 639, du type en (anglais). Alors que 639-1 limitait à deux caractères les codes de langues, (soit 676 langues au plus), 639-2 étend à 3 le nombre de caractères des codes de langues (soit 17 576 codes possibles). Pour maintenir la compatibilité des documents antérieurs à 639-2 et garantir l'unicité des codes de langues utilisés, 3066 fixe les règles suivantes :

  • Pour certaines langues, dont le français, 639 propose simultanément un code à 2 caractères et un ou deux codes à 3 caractères. On doit alors utiliser uniquement le code à deux caractères : fr, et non les codes bibliographiques (fre) et terminologiques (fra) à 3 caractères ;
  • Pour d'autres langues, comme l'écossais, il n'existe pas de code à 2 caractères. On utilisera alors le code à 3 caractères: sco (il n'y a dans ce cas qu'un seul code à 3 caractères disponible).
  • Lorsqu'une langue a à la fois un code et un code défini par l' sous la forme i-foo, seul le code doit être utilisé. Le code est alors considéré comme déprécié. C'est le cas par exemple pour le klingon, qui ne doit pas être désigné par i-klingon, mais par son code tlh.

Dans tous les cas, il est indispensable de consulter le tableau de référence des codes 639 tenu à jour par la Bibliothèque du Congrès des Etats-Unis, qui en a officiellement la charge.

Homme Bandoulière Sac Fila Femme Rouge À qUpzMSV

Ce code de langue peut être éventuellement suivi d'un ou plusieurs codes secondaires de pays (3166), séparés par un tiret, du type en-US (anglais - Etats-Unis). Ce mécanisme est cependant d'une portée limitée, car il ne permet pas d'indiquer de nombreuses variantes linguistiques régionales (l'espagnol latino-américain exemple).

L'ensemble de ces codes sont indifférents à la casse selon 3066. 639 recommande (sans en faire une obligation) l'écriture des codes de langue en minuscules, tandis que l'usage est d'utiliser des majuscules pour les codes de pays.

D'autre part, certains auteurs sont parfois tentés de créer leurs propres codes de langue, ou de détourner le mécanisme de spécification de la langue pour faire référence à des données non linguistiques. Il s'agit fréquement d'une indication d'un langage de programmation, du type lang="PHP". Ces détournements sont dénués de sens : 4.01 précise en effet clairement que les langages informatiques sont explicitement exclus des codes de langue.

Notons enfin que deux codes de langues génériques, mul (Multilingue) et und (Langue indéterminée) n'ont pas lieu d'être utilisés en . 3066 précise en effet que :

  • mul ne doit pas être utilisé lorsque le protocole concerné autorise l'utilisation d'une série de codes linguistiques, ce qui est le cas de l'en-tête Content-Language (comme indiqué ci-dessus, les valeurs doivent alors être séparées par des virgules) ;
  • und ne doit pas être utilisé lorsqu'il est possible d'omettre la mention de la langue, ce qui est le cas en . Notons à ce propos qu'en traité en tant que , un attribut vide xml:lang="" signifie qu'aucune langue n'est attribuable à l'élément concerné, annulant de ce fait la langue spécifiée à un niveau supérieur.

À propos de cet article

  • Openweb.eu.orgGris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1J
  • Profil : Débutant, Expert, Gourou
  • Technologie : (X)HTML
  • Auteurs : ,
  • Publié le :
    Gris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1J
  • Mise à jour : 22 mai 2008
  • 8 commentaires

Vos commentaires

Vos commentaires

Qui êtes-vous ?Gris Homme Nktechsmallitems Sac Homme Nktechsmallitems Nktechsmallitems Nktechsmallitems Sac Gris Gris Homme Sac Homme Sac T5Fcu3Kl1J
Ajoutez votre commentaire ici
  • Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url]Noir Homme Promo Blanco Serge Et Orange Sb8001 Montre nw0O8mvN <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Suivre les commentaires : |

Ce site s'affiche mieux dans un navigateur conforme aux standards, voici pourquoi.

Site hébergé par Nursit et par l'APINC (2002-2010). Propulsé par SPIP.