a.css

esbudellant estàndards


Canvi d'idioma i l'atribut title

01/10/06

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 lang attribute 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

  1. 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.

  2. 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:

    
    <span xml:lang="la">
       <title xml:lang="ca">
          Extracte d'una obra de Ciceró on deia <abbr xml:lang="la" title="Neque porro quisquam est qui dolorem ipsum quia dolor sit amet,">dolorem ipsum</abbr>
       </title>
       Lorem ipsum
    </span>
    

    Tot i que potser ho complica massa...

  3. 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:

    1. Que para el texto del enlace utilice el título del artículo enlazado, en cuyo caso utilizaré el atributo title para incluir la traducción (o una descripción del contenido) en español.
    2. Que para el texto del enlace use términos españoles que encajen bien con la prosa que estoy siguiendo, en cuyo caso en el atributo title incluyo 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.

  4. 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.

Afegir un comentari


© Arnau Siches. a.css està sota Llicència Creative Commons.