L'ús de l'atribut lang en HTML —xml:lang per XHTML— permet definir l'idioma del contingut de l'element marcat.
Per tant en un fragment tipus:
<p xml:lang="ca">
Un text d'exemple estil <span xml:lang="la">Lorem ipsum</span>
</p>
queda clar que el text del paràgraf és català excepte el fragment Lorem ipsum
que és llatí.
Si compliquem l'exemple:
<p xml:lang="ca">
Un text d'exemple estil <span xml:lang="la" title="Extracte d'una obra de Ciceró">Lorem ipsum</span>
</p>
L'atribut title s'ha d'interpretar com a català o com a llatí?
A la definició de l'atribut lang de l'especificació de l'HTML 4 queda clar:
The
langattribute specifies the language of element content and attribute values;
O sigui que l'exemple anterior no està contemplat com a possible. L'única manera seria posant el title en un altre element:
<p xml:lang="ca">
Un text d'exemple estil <span title="Extracte d'una obra de Ciceró"><span xml:lang="la">Lorem ipsum</span></span>
</p>
Però això comença a ser un codi dubtós. Si ho compliquem una mica més el problema es torna insoluble:
<p xml:lang="ca">
Un text d'exemple estil <span xml:lang="la" title="Extracte d'una obra de Ciceró on deia 'dolorem ipsum'">Lorem ipsum</span>
</p>
Al mesclar dos idiomes a l'atribut title l'HTML ja no proporciona cap via ni directa ni amb imaginació per marcar-lo adequadament.
Mirant l'especificació en esborrany d'XHTML 2 no he trobat que s'intenti solucionar aquesta deficiència.
Gràcies a en Choan i a na Emmanuelle per les aportacions.
Comentaris
Comentat per Federico el 01/10/06
Se nota que estabas decidido a encontrar el problema. :P
En el problemático caso que planteas, me temo que sería el mismo dilema qué existe cuando creas un lenguaje derivado de XML: elementos o atributos. Para la complejidad que alcanza tu ejemplo, no creo que haya otra solución más que usar otros elementos y evitar los atributos.
Comentat per are el 01/10/06
Home, ara que ho dius...si es pogués triar com posar el
title(element o atribut) seria perfecte :)Quelcom tipus:
Tot i que potser ho complica massa...
Comentat per choan el 02/10/06
Federico, el que se topó con el problema --aunque luego Arnau se encargó de complicarlo-- fue un servidor. Para mí es un problema real, ya que habitualmente enlazo a contenidos en inglés. Y pueden suceder dos cosas:
titlepara incluir la traducción (o una descripción del contenido) en español.titleincluyo el título del artículo en su idioma original.Vaya, que lo descrito en el tercer código de ejemplo es un problema con el que me encuentro habitualmente. La "solución" propuesta en el cuarto bloque de código es, aunque verbosa, razonable.
Comentat per Gonzalo el 02/10/06
Algo similar ocurre con las abreviaturas y acrónimos. Por ejemplo para CSS, el título sería "Cascading Style Sheets". Pero si el idioma del documento es distinto al inglés (castellano, catalán, bable,...) no hay una solución de código para poder colocar diferentes títulos para diferentes idiomas.
La opción al final suelo utilizar, es la aclaración entre paréntesis de la traducción, para que los que no conozcan el término, por lo menos sepan más o menos que puede ser.