Al hacer un sitio SPIP multilingüe con palabras clave (tags), como por ejemplo banquete_08, está el problema de que ni a las palabras clave ni a los autores se les puede asignar un idioma.

SPIP ha decidido hacerlo así porque se supone que las palabras clave designan conceptos únicos, independientemente del idioma en que se expresen, y los mismo ocurre con los autores, que designan personas únicas.

La solución para expresar palabras clave en distintos idiomas es utilizar bloques miltilingües. Esto se hace en la interfaz privada.

Ejemplo

Queremos una palabra clave para las noticias.

Queremos que en español se llame Noticias  y en inglés se llame News.

1. Creamos la palabra clave y como título ponemos News o Noticias o cualquier otro nombre indistintamente. Redactores/as y administradores/as la verán con ese nombre

2. En la descripción rápida escribimos:

<multi>[en]News [es]Noticias</multi>

3. En los esqueletos, para conseguir el multilingüismo, en lugar de la baliza #TITRE habrá que utilizar la baliza #DESCRIPTIF.

4. Todavía nos quedaría el #TEXTE para crear otro bloque multilingüe para poner la descripción de la palabra clave, por ejemplo.

En los bloques multilingües se puede poner un texto tan largo como se quiera. Por ejemplo, este que sigue es un poquito más largo:

<multi>[en]All videos [es]Todos los vídeos</multi>

Y la misma técnica puede valer para autores/as.

De hecho, puede valer también para cualquier artículo.

Es más: puede usarse también directamente en los esqueletos. Ahí va un ejemplo de los esqueletos de Alternatives:

<a href="http://www.stages.alternatives.ca/article286.html"
title="<multi>Squelette ALTERNATIVES[en] Template ALTERNATIVES[es]Esqueleto
ALTERNATIVES[pt]Esqueleto ALTERNATIVES</multi> - 1.9.2c">ALTERNATIVES</a>

En resumen, los bloques multilingües completan el multilingüismo de SPIP.

 

Después de instalar una Ubuntu 8.0.4 ocurrió el curioso problema de que de Internet solo se podían ver las páginas web del sitio de Ubuntu y ninguna más, mientras que funcionaban los ping, ftp y telnet por línea de comandos, etc.

Con gran desconcierto, instalamos una Fedora y pasaba exactamente lo mismo.

Por suerte, encontramos esta ayuda “¿Problemas de red en Linux?“, que solucionó este problema, que afecta a las últimas versiones del kernel de Linux.

 

Como es sabido, SPIP permite asociar un esqueleto específico a una sección específica. Esto permite tener diferentes vistas para distintas secciones. Hasta ahí todo va bien. Pero el problema surge cuando:

  • Se crea una nueva sección: hay que crear (aunque sea copiando) un esqueleto específico para ella.
  • Se realiza mantenimiento: hay que tener en mente el número de cada sección (y su significado en la estructura de contenidos).

Para evitar estos inconvenientes, una opción es tener un solo esqueleto rubrique.html y en él un estructura condicional (tipo if) controlada por palabras clave, de manera que asociando una determinada palabra clave a una sección se ejecute una parte del esqueleto u otra.

La sintaxis básica de un if de este tipo sería esta:

<BOUCLE_a(MOTS){id_rubrique}{titre=palabra_a}>
  [(#REM) - Código que se ejecuta
  si la sección tiene asociada la palabra "palabra_a"]
</BOUCLE_a>
</B_a>
  [(#REM) - Código que se ejecuta en cualquir otro caso ]
<//B_a>

A continuación un ejemplo de la vida real, por partes.

Primero, un bucle que lista las subsecciones de una sección, poniendo un código HTML <ul> y </ul> antes y después de los <li>:

  <B_lista_secciones>
    <h2>Art&iacute;culos en esta secci&oacute;n:</h2>
    <ul>
    <BOUCLE_lista_secciones(RUBRIQUES){id_parent}{par date}{inverse}>
      <li><a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a></li>
    </BOUCLE_lista_secciones>
    </ul>
  <//B_lista_secciones>

Segundo, un bucle similar que lista los artículos de una sección:

  <B_lista_articulos>
    <h2>Art&iacute;culos en esta secci&oacute;n:</h2>
    <ul>
    <BOUCLE_lista_articulos(ARTICLES){id_rubrique}{exclus}{par date}{inverse}>
      <li><a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a></li>
    </BOUCLE_lista_articulos>
    </ul>
  <//B_lista_articulos>

Tercero, todo junto en una estructura if controlada por palabras clave. Si la sección tiene asociada la palabra clave “tipo_artículo” se listan sus subsecciones (como si fueran artículos) y si no, se listan sus artículos propiamente dichos:

[(#REM) - Lista las subsecciones como si fueran articulos si la palabra clave de la rubrique es = tipo_articulo ]
<BOUCLE_tipo_articulo(MOTS){id_rubrique}{titre=tipo_articulo}>
  <B_lista_secciones>
    <h2>Art&iacute;culos en esta secci&oacute;n:</h2>
    <ul>
    <BOUCLE_lista_secciones(RUBRIQUES){id_parent}{par date}{inverse}>
      <li><a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a></li>
    </BOUCLE_lista_secciones>
    </ul>
  <//B_lista_secciones>
</BOUCLE_tipo_articulo>
</B_tipo_articulo>

[(#REM) - Sino, lista los articulos de la sección]
  <B_lista_articulos>
    <h2>Art&iacute;culos en esta secci&oacute;n:</h2>
    <ul>
    <BOUCLE_lista_articulos(ARTICLES){id_rubrique}{exclus}{par date}{inverse}>
      <li><a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a></li>
    </BOUCLE_lista_articulos>
    </ul>
  <//B_lista_articulos>
<//B_tipo_articulo>

En otro artículo vamos a pner un ejemplo más complejo, con dos if anidados:

if
else
  if
  else
  fin
fin

Si, mientras lo ponemos, quieren ir haciendo sus propias conjeturas… ;-)

Blog de Dabne || Web de Dabne Suffusion theme by Sayontan Sinha