Bonjour,

Si je crée avec un content-language: fr,en, que faire du <title> ?

Je comprends (surement mal) des DTD que la balise <head> peut contenir l'attribut lang. Mais pas <title>.

Est-ce que quelqu'un peut m'expliquer cela et me dire comment faire bien pour le titre ?

Merci.
J'avoue ne pas cerner ton problème. La balise content-language et la title sont deux choses bien distinctes et sans rapport.

La première sert à signaler dans qu'elle langue est ton site alors que le title sert à afficher le titre de ta page en haut de la fenêtre active.
Ripper Roo a écrit :
La première sert à signaler dans qu'elle langue est ton site alors que le title sert à afficher le titre de ta page en haut de la fenêtre active.

Mais si ton document web (ne parlons pas encore de site, il n'y a pas de moyen en HTML pour déclarer la langue d'un site Smiley cligne ) contient plusieurs langues, par exemple une présentation en français et une en russe, côte-à-côte?

Bien sûr les contenus dans la page seront bien marqués comme étant en telle ou telle langue grâce à l'attribut lang (par exemple placé sur certaines div).

Mais quid du titre, si le document n'a pas de langue prédominante?

Il me semble que pour cette problématique précise il n'y a pas de réponse ad hoc à l'heure actuelle. C'est une limite de la spécification HTML. Il faut choisir une solution, peut-être privilégier l'une ou l'autre langue, ou bien... gérer la question du choix de la langue en amont (négociation de contenus, choix de la langue à l'inscription sur un site, versions localisées d'un site, etc.).
La gestion du multilinguisme sur une seule page Web n'est pas une tâche aisée. Effectivement il n'y aucun moyen d'indiquer un changement de langue dans le titre de la page (il sera théoriquement écrit dans la langue de la page).

Le problème se rencontre aussi dans tous les attributs des balises HTML (alt, title, ...).

Je ne peux que te conseiller comme Florent d'opter pour une langue par page.
Hello Florent, on s'est croisé 30 secondes (autant dire qu'on est de grands amis de 30 ans) lorsque tu m'as interrompu avec Elie Sloïm à ParisWeb Smiley cligne

Et toi, Sébastien, j'ai été à ton atelier technique : je suis le mec qui se permet de faire des remarques sur l'utilisation du alt vide Smiley smile

Je me doutais du problème pour title, j'ai tenté au cas où car il arrive qu'un bloggeur adulé propose parfois une solution.

Quid de lang dans <head> et <title> ? C'est quand même curieux de pouvoir faire ça alors que lang est censé permettre du déterminer la langue d'un contenu (je suis en train de préparer une formation là-dessus, faudrait pas qu'ils puissent me pièger Smiley smile ).

Gérer autrement, c'est facile. Je fais classiquement ça en PHP et je n'ai que rarement plusieurs langues sur une même page.
Mais c'est en faisant un exemple de page multilingue que je me suis trouvé confronté au problème du title.

Quant aux alt et title que tu évoques Sébastien, qu'est-ce qui pose problème puisque tu peux mettre l'attribut lang sur ton élément ? Les autres attributs seront liés à cette langue, non ?
Et d'ailleurs, tout ce qui est dans ton élément sera considéré dans la lang spécifiée. Du moins, c'est ce que je considérais jusqu'à maintenant.

<p lang="fr>Tout ça c'est du français <q>même ma citation</q></p>
Modérateur
Hello, Smiley smile

Excusez-moi mais je n'ai pas bien compris le problème avec les balises head et title. Smiley confuse

La DTD XHTML1.0 Strict dit :
<[#blue]!ENTITY % i18n[/#]
 "lang        %LanguageCode; #IMPLIED
  xml:lang    %LanguageCode; #IMPLIED
  dir         (ltr|rtl)      #IMPLIED"
  >

...

<!ATTLIST head
  [#blue]%i18n;[/#]
  id          ID             #IMPLIED
  profile     %URI;          #IMPLIED
  >

...

<!ELEMENT title (#PCDATA)>
<!ATTLIST title 
  [#blue]%i18n;[/#]
  id          ID             #IMPLIED
  >
donc l'attribut lang est bien permis sur ces 2 éléments.
Modifié par koala64 (27 Nov 2007 - 13:46)
talvins a écrit :
Hello Florent, on s'est croisé 30 secondes (autant dire qu'on est de grands amis de 30 ans) lorsque tu m'as interrompu avec Elie Sloïm à ParisWeb Smiley cligne

Si on se recroise trente secondes il faudra que tu me le rappelle, je ne suis pas physionomiste pour deux sous. Smiley cligne

talvins a écrit :
Je comprends (surement mal) des DTD que la balise <head> peut contenir l'attribut lang. Mais pas <title>.

(...)

Quid de lang dans <head> et <title> ?

Je viens de vérifier les DTD HTML 4.01 Strict et XHTML 1.0 Strict, et l'attribut lang est utilisable aussi bien avec head qu'avec title.
Edit: grillé par koala.

Dans le cas de title:
<!ELEMENT title (#PCDATA)>
<!ATTLIST title 
  %i18n;
  id          ID             #IMPLIED
  >

Par contre, indiquer la langue pour l'élément title n'a d'intérêt que si elle diffère de la langue de traitement du document.

Juste pour le fun, j'ai essayé de créer un document avec deux éléments title, l'un marqué en français et l'autre en anglais. Il me semble que dans la DTD rien ne l'interdit, par contre le validateur du W3C ne trouve pas ça très joli. Smiley cligne

talvins a écrit :
Quant aux alt et title que tu évoques Sébastien, qu'est-ce qui pose problème puisque tu peux mettre l'attribut lang sur ton élément ?

Mais si tu veux donner l'information dans les deux langues, il faut deux images... Tu ne peux pas avoir:
<img src="...">
	<span lang="fr">Beaucoup de bruit pour rien</span>
	<span lang="en">Much ado about nothing</span>
</img>

Modifié par Florent V. (27 Nov 2007 - 14:04)
Modérateur
Pour faire un site multilinguiste, XSLT est très pratique. Il suffit de passer les valeurs d'attributs lang en paramètres lors de la transformation XML->XHTML et d'appliquer le contenu en conséquence.

Lors d'une requête HTTP, la langue de l'utilisateur est envoyée par le navigateur et peut donc être récupérée. De là, on définit la langue majoritaire du document (indiquée sur l'élément html) et on applique des valeurs d'attributs en fonction de ce paramètre.
Pour lang dans head et title, j'avais bien compris que l'on peut le mettre mais je précisais :
a écrit :
C'est quand même curieux de pouvoir faire ça alors que lang est censé permettre du déterminer la langue d'un contenu


J'ai effectivement testé de mettre 2x <title> mais ce doit être écrit quelque part que l'on ne peut pas (par trouvé dans la DTD mais pas suffisamment cherché je pense) car mon validateur n'est pas très content.

Les éléments head et title sont pour la totalité de la page. C'est un peu comme utilisé l'attribut lang sur l'élément html : je ne vois pas l'intérêt puisque la langue principale est donnée par content-language.
Modifié par talvins (27 Nov 2007 - 16:51)
talvins a écrit :

Et toi, Sébastien, j'ai été à ton atelier technique : je suis le mec qui se permet de faire des remarques sur l'utilisation du alt vide Smiley smile


Foutue mémoire... Un sacré moment pour me remettre ta remarque. Par contre je suis aussi très peu physionomiste et si on se recroise n'hésite pas à m'interpeller.


talvins a écrit :

Quant aux alt et title que tu évoques Sébastien, qu'est-ce qui pose problème puisque tu peux mettre l'attribut lang sur ton élément ? Les autres attributs seront liés à cette langue, non ?
Et d'ailleurs, tout ce qui est dans ton élément sera considéré dans la lang spécifiée. Du moins, c'est ce que je considérais jusqu'à maintenant.

<p lang="fr>Tout ça c'est du français <q>même ma citation</q></p>



Dans le cas que tu présentes oui il n'y a pas de soucis. Ce que je voulais dire c'est pour préciser la langue contenue dans les attributs.

Petit exemple:

<img src="..." alt="Voiture garée sur une rue - Car parked on a street" />


Le multilinguisme devient alors extrèmement complexe à gérer...

Mais le cas peut aussi se présenter dans une seule langue:

<img src="..." alt="Demoiselle en train de faire du shopping" />


A moins d'utiliser le terme québecois "magasinage", il n'y a pas de solution pour qu'une synthèse vocale prononce le terme correctement...
Modifié par Sebastien D. (27 Nov 2007 - 17:23)
talvins a écrit :
Les éléments head et title sont pour la totalité de la page. C'est un peu comme utilisé l'attribut lang sur l'élément html : je ne vois pas l'intérêt puisque la langue principale est donnée par content-language.

L'en-tête HTTP Content-Language permet de définir la ou les langues primaires d'un document.
L'attribut HTML lang, où qu'il soit placer, indique une langue de traitement.

Lire ou relire l'article suivant:
http://openweb.eu.org/articles/specifier_langue/
Sebastien D. a écrit :
A moins d'utiliser le terme québecois "magasinage", il n'y a pas de solution pour qu'une synthèse vocale prononce le terme correctement...

Sauf un mécanisme de dictionnaire phonétique correct.

Le code suivant, même en dehors de tout attribut alt, serait peut-être déplacé:
Demoiselle en train de faire du <span lang="en">shopping</span>

Dans cette phrase, "shopping" n'est pas un mot anglais mais un anglicisme français. Smiley smile

C'est encore plus flagrant avec un mot comme "parking", qui pour le coup est très français (on dit parquinn'gue, et les anglo-saxons disent "parking lot" ou "car park").
Florent V. a écrit :

Le code suivant, même en dehors de tout attribut alt, serait peut-être déplacé:
Demoiselle en train de faire du <span lang="en">shopping</span>

Dans cette phrase, "shopping" n'est pas un mot anglais mais un anglicisme français. Smiley smile


Pas faux, mon exemple était mal choisi. Effectivement "parking" est plus adapté. Quoique les synthèses vocales arrivent à la prononcer correctement en français.
Modifié par Sebastien D. (27 Nov 2007 - 18:35)
Florent V. a écrit :

L'en-tête HTTP Content-Language permet de définir la ou les langues primaires d'un document.
L'attribut HTML lang, où qu'il soit placer, indique une langue de traitement.


Je le sais très bien, d'où ma question Smiley smile

Pour paraphraser ma remarque donc :
L'attribut lang est pour la langue de contenu (de traitement si tu préfères). Or, head et title sont uniques. Comme on a déjà spécifié la langue primaire, comment la langue de <head> et <title> pourrait être différente de celle de la langue primaire ?

Dans le seul cas où l'on souhaite que, par exemple, des italiens viennent sur la page française et des danois sur la page anglaise (en supposant donc qu'il n'existe pas de pages italienne et danoise). Mais le cas me semble assez exceptionnel alors que des titres en plusieurs langues, c'est nettement plus commun.
Sebastien D. a écrit :


Foutue mémoire... Un sacré moment pour me remettre ta remarque. Par contre je suis aussi très peu physionomiste et si on se recroise n'hésite pas à m'interpeller.



Ben voilà, je suis invisible. C'est un drame.


Sebastien D. a écrit :

Petit exemple:

<img src="..." alt="Voiture garée sur une rue - Car parked on a street" />



Pour cet exemple, il est souvent dit que l'on peut remplacer un alt par une légende et, pour ma part, je le vois ainsi.
En effet, le but est d'avoir un texte alternatif : une texte placé en-dessous de l'image fait très bien l'affaire. Et dans ce cas, tu peux utiliser l'attribut lang.

Il y a souvent une solution de rechange mais il est vrai que le multilinguisme (et surtout, à mon avis, la phonétique, existante mais complexe dans CSS3) est assez délicat.

Dommage pour mes titres Smiley smile
talvins a écrit :

Pour cet exemple, il est souvent dit que l'on peut remplacer un alt par une légende et, pour ma part, je le vois ainsi.
En effet, le but est d'avoir un texte alternatif : une texte placé en-dessous de l'image fait très bien l'affaire. Et dans ce cas, tu peux utiliser l'attribut lang.

Tout à fait, à condition de bien préciser que c'est une légende de l'image qui se trouvait juste avant (sinon l'utilisateur non voyant n'est pas obligé de faire le lien entre le texte et l'image).