El Blog de Loretahur

No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella

Gestionando varios idiomas con WordPress

a las 23:23

Ando embarcada en varios proyectos sustentados por el gestor de contenidos WordPress y uno de los requisitos imprescindibles es la navegación multi-idioma. Así que dejaré por aquí mi experiencia, por si a alguien le sirve de ayuda o puede ser enriquecida por otras personas (y a ver si así podemos devolver algo de todo lo que nos ofrece este tipo de paquetes de software libre).

Lo primero de todo, necesitamos un plugin que consiga gestionar correctamente ese sistema multi-idioma. Para ello, y tras probar unos cuantos, el vencedor ha sido xlanguage. Las características que le hacen caballo ganador:

  • Se encarga de la administración de tantos idiomas como queramos manejar. Esa gestión afecta a los contenidos del blog (tanto posts como páginas estáticas), a las categorías, etiquetas, feeds, theme, etc, …
  • En el theme sólo será necesario contar con una carpeta donde almacenar los ficheros de idioma: un .mo con el nombre del idioma. Si tenemos plugins que generan contenidos, también podremos traducirlos y dejar aquí sus .mo.
  • Una funcionalidad muy interesante es que gestiona el cambio de idioma mediante cookies, así que si cambiamos el lenguaje que arranca por defecto, en próximas navegaciones recordará nuestra preferencia. También detecta el idioma del navegador, para mostrarnos directamente esa opción.
  • Por cada idioma genera una url diferente, lo que hace que los buscadores indexen los contenidos en todos los idiomas. Esa fue una de las razones por las que me decanté por xlanguage y no por qtranslate, que usa la misma dirección para todas las traducciones.

¿Y cómo conseguimos traducir nuestro theme y nuestros plugins? Sencillo: todas las llamadas php que muestren cadenas de texto, tendrán que ir con la función _e() o bien con la función __() (la diferencia entre ambas es que _e hace un echo de la cadena. Es decir, echo __(“Hola mundo”); es lo mismo que _e(“Hola Mundo”); ). De esta manera, con las herramientas que nos ofrece WordPress para la localización e internalización, podremos generar un .pot del theme donde introducir las traducciones pertinentes para luego generar el .mo que entenderá nuestro xlanguage.

  • .pot: este fichero se genera de manera automática y recoge todas las cadenas de texto que aparecen en nuestro site. Por cada una de ellas, aparece justo debajo el espacio donde se debe dejar su traducción. Este es un ejemplo donde aparece primero el lugar en el que está dentro del código, la cadena en sí y el espacio donde se dejará la traducción correspondiente:

    #: presentacion.php:36
    msgid “Hello World”
    msgstr “”

  • .po: es el fichero .pot con las traducciones ya incluidas. Siguiendo el ejemplo anterior:

    #: presentacion.php:36
    msgid “Hello World”
    msgstr “Hola Mundo”

  • .mo: fichero binario que entienden las máquinas generado a partir del .po.

Expliquemos el proceso paso por paso.

  1. Instalamos xlanguage y configuramos todos los idiomas en los que queremos que funcione nuestro blog. Mi recomendación es que usemos el código ISO3166 para identificar a cada uno.
  2. Tendremos que repasar todos nuestros plugins y el theme para identificar dónde se generan cadenas de texto y comprobar que se usa o la función _e() o __(). WordPress usa la librería de internacionalización (i18n) gettext. Si dentro de una cadena de texto aparece una variable, no podemos usar sin más _e(“Tenemos $num amigos”); pero sí printf(__(“Tenemos %d amigos.”), $num);
  3. Después de marcar todas las cadenas a traducir, ahora toca generar el .pot con ellas. Para ello, nos bajamos el script add-textdomain.php de WordPress. Lo lanzamos de la siguiente manera:
    php add-textdomain.php -i domain phpfile.php

    El domain marca el ámbito de lo que traducimos. Podemos poner default, por ejemplo, para el theme y el nombre del plugin para cada uno de ellos. Luego generamos el .pot mediante makepot.php:

    php makepot.php wp-theme el-directorio-del-theme languages/traduccion.pot

    En el caso de un plugin ponemos wp-plugin en vez de wp-theme. Para usar todas estas herramientas tenemos que tener el paquete gettext en nuestro servidor.

  4. Para optener el .mo (fichero binario que entienden las máquinas) del .po (fichero con texto que entendemos las personas), lanzamos el siguiente conjuro desde bash:
    msgfmt fichero_idioma.pot -o fichero_idioma.mo

  5. Ahora sólo falta que el theme sepa dónde encontrar esos ficheros .mo. Para ello usaremos el fichero de funciones de los themes de wordpress: functions.php. Allí agregaremos lo siguiente, teniendo en cuenta que hemos dejado los ficheros .mo en la carpeta languages y que el domain del theme es default:

    function theme_init(){
    load_theme_textdomain(‘default’, get_template_directory() . ‘/languages’);
    }

    Si además queremos traducir algún plugin:

    function theme_init(){
    load_theme_textdomain(‘default’, get_template_directory() . ‘/languages’);
    //Aquí ponemos el plugin cuyo domain es plugin1:
    load_theme_textdomain(‘plugin1′, get_template_directory() . ‘/languages/plugin1′);
    }

  6. Para introducir contenidos, en el título, las categorías y las etiquetas, se separa cada idioma con un carácter definido en la parte de administración de xlanguage. Por defecto se usa el carácter | (el pipe que está en la tecla del uno y la exclamación). Por ejemplo, publicaríamos “Etiketak|Etiquetas” para crear un contenido cuyo título en euskera sería Etiketak y Etiquetas en castellano (siempre se usa el orden de creación de los idiomas). En los contenidos, en el editor de WordPress tenemos unos botones para marcar el idioma de cada parte. Y si lo queremos manejar desde la parte html, sólo tendremos que marcarlo con la etiqueta <span lang=”idioma”></span> (una etiqueta estandarizada por el W3C)

Enlaces de interés:

Imagen de ButterflySha (vía Flickr). Licencia CC-by

Curso sobre Web 2.0: Blogs

a las 21:30

Segundo módulo de este curso sobre web 2.0, tras la introducción.

1. Blogs

1.1. Definición

Muchos son los nombres que reciben: blogs, bitácoras, weblogs, … y todos dan una idea del concepto. En el caso de la palabra en inglés, se trata de la suma de web + log. Es decir, una página web con formato de diario (como el que nos regalaban en la primera comunión, con la diferencia de que ése no se lo dejábamos leer a nadie y ahora lo mostramos al mundo entero). En el caso de la palabra en castellano, hace referencia a los cuadernos que acompañaban a los marineros, donde narraban las vicisitudes de sus viajes. Esto nos hará, por tanto, entender mejor el concepto: sitio web periódicamente actualizado que recopila cronológicamente texto o artículos de uno o más autores, apareciendo primero el más reciente.

1.2. Características

Las características a destacar son:

  • El importante componente temporal que tienen. La ordenación cronológica de los contenidos (los últimos serán los primeros) hace que este formato no tenga sentido para materiales estáticos que no deseamos que desaparezcan de la portada.
  • Son frecuentemente actualizados. Normalmente se suele escribir como mínimo una entrada por semana.
  • Son sindicables: cuentan con un feed para que los lectores puedan estar al tanto de esas actualizaciones sin necesidad de desplazarse a la página.
  • Pueden tener un único autor o varios.
  • Es muy importante categorizar y etiquetar la información. Dado que se actualizan frecuentemente y en la página principal de un blog se muestra un número limitado de entradas, será importante meterlas dentro de categorías genéricas para una búsqueda rápida y etiquetar con palabras clave que describan el contenido de cada entrada. En este maremagun de información que es Internet, es clave esta tarea. Además, cada categoría y etiqueta tendrá asociada su propio feed, por lo que nos podremos suscribir exclusivamente a una temática concreta dentro de un blog.
  • La estructura de los blogs hace que sean muy google-friendly, es decir, que tengan una gran visibilidad en buscadores.
  • Normalmente permiten los comentarios, para fomentar la conversación. Sin embargo, hay algunos que no lo hacen.
  • A los blogs se les puede aplicar el concepto de la larga cola, que nos viene a decir que hay un número muy elevado de bitácoras con pequeñas audiencias a su alrededor y un número muy reducido de bitácoras con muchos seguidores.
  • Pueden ser públicos o privados. Lo normal es que cualquiera pueda acceder a sus contenidos, pero los hay que nacen con la finalidad de preparar un proyecto o con sentido para un grupo reducido de personas, por lo que sólo podrán ser leídos por los componentes que tengan una contraseña para ello.

De nuevo, la gente de Common Craft lo explica perfectamente en este vídeo.

1.3. Partes

Partes de las que consta una bitácora:

  • Entrada o post: es la unidad mínima de un blog. Tiene su propia url (denominada permalink), lo que hace que podamos enlazar exclusivamente a este texto. Además puede contar con comentarios (si están permitidos), etiquetas (palabras clave que ha introducido el autor para describir el contenido del mismo). Toda entrada tiene que ir enmarcada en una o varias categorías. La diferencia entre el uso de categorías y etiquetas es que las primeras son sacos genéricos donde podremos “meter” nuestros posts y las etiquetas son palabras puntuales que describen el contenido. Las entradas pueden estar en diferentes estados:
    • Borrador: cuando aún estamos trabajando en un post y no está publicado (por tanto, sólo lo vemos nosotros).
    • Publicado: visible para todo el mundo. Aún así se podrán hacer cambios sobre él e incluso despublicarlo.
    • Programado: en la mayoría de plataformas de blogging se pueden dejar programadas las entradas para que se publiquen un día y hora determinados.
  • Páginas estáticas: se trata de contenidos estáticos, que no tienen que ir al ritmo temporal del resto. Por ejemplo, crearemos páginas estáticas para publicar la información de contacto, una breve descripción del blog o de su autor/a, … No todos los sistemas de blogging las permiten (por ejemplo, no se pueden crear en blogger pero sí en wordpress).
  • Feed (de entradas y comentarios): la mayoría de sistemas de blogging generan un feed para seguir las actualizaciones del mismo, otro para seguir todos los comentarios que se dejan e incluso, hay algunos que tienen uno por cada categoría y etiqueta, con la idea de poder filtrar aún más los contenidos.
  • Buscador: para poder bucear entre todos los contenidos, que van desapareciendo de la página de inicio, el buscador es una herramienta siempre presente.
  • Barra lateral: esta parte del blog es la más maleable. Se podrá configurar a nuestro antojo para decidir qué aparece. De hecho, dependiendo del diseño del blog, podremos tener una o varias columnas (o incluso ninguna). Aquí hay una serie de elementos que son muy utilizados:
    • Entradas recientes: el título y enlace a los últimos posts publicados.
    • Comentarios recientes: el autor y enlace a los últimos comentarios dejados.
    • Enlaces: a este apartado se le suele denominar “blogroll” o “barrio“. Son los enlaces a bitácoras o páginas web que nos parecen interesantes.
    • Archivo: enlace al conjunto de entradas agrupadas por mes. Por ejemplo, todas las escritas en enero de 2009.
    • Categorías: todos esos sacos donde vamos “metiendo” nuestros posts.
    • Nube de etiquetas: gracias a las etiquetas que hemos ido introduciendo en nuestros posts, se generará de forma automática una nube. En esta nube, el tamaño de cada etiqueta dependerá de la frecuencia con que la usemos. A mayor frecuencia, mayor tamaño. Es una forma óptima de comprobar de forma gráfica cuál es la temática de nuestro blog.

1.4. Licencias

La selección de la licencia que tendrán los contenidos de nuestro blog no es trivial dado que marcará el uso que podrán hacer de los mismos otros usuarios. Existen muchos tipos de licencias:

  • Copyright: todos los derechos reservados (si no se especifica nada, es la licencia por defecto). En 1790, en los Estados Unidos se aprueba la primera ley sobre copyright que tenía una duración de 14 años tras la creación de la obra. Actualmente, en España es de 70 años tras la muerte del autor (en algunos casos puede llegar a ser incluso 80 años).
  • Dominio público: cuando los derechos patrimoniales han expirado o cuando se establece de forma directa, cualquiera podrá explotar esa obra (pero los derechos morales seguirán siendo del autor). Sin embargo, esta licencia permite que alguien tome la obra, la modifique y establezca una nueva licencia de copyright, por ejemplo. Hasta finales de los 80 todo lo que se generaba era de dominio público a no ser que se pusiera la gran ©. Sin embargo, en la actualidad, todo tiene copyright: los derechos de autor los tiene por ley todo creador desde el momento en el que aparece la obra, sin necesidad de hacer nada.
  • Copyleft: se eliminan las restricciones de distribución o modificación impuestas por el copyright, con la condición de que el trabajo derivado se mantenga con el mismo régimen de derechos de autor que el original.
  • Creative Commons: algunos derechos reservados. Especifica que se permiten ciertos usos de nuestras obras, bajo ciertas condiciones, que combinadas, forman las seis licencias existentes. Estas son las cuatro condiciones:
    • Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licencia hará falta reconocer la autoría.
    • No Comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales.
    • Sin obras derivadas (No Derivate Works): La autorización para explotar la obra no incluye la transformación para crear una obra derivada.
    • Compartir Igual (Share alike): La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas.
  • ColorIURIS: está dirigido a los creadores de contenidos que utilizan Internet para su difusión, publicación y/o puesta a disposición, y que quieran ceder los derechos patrimoniales de sus creaciones dentro y fuera de la Red. Usa códigos de colores para definir la política de derechos de autor.

1.5. Buenas prácticas o netiqueta

En los blogs, como en la calle, existen una serie de normas tácitas que mantienen el equilibrio de las relaciones. Es lo que se conoce como netiqueta o buenas prácticas que todo bloguero o blogger debería seguir:

  • Referenciar y enlazar. Cuantos más enlaces pongamos en nuestro texto para enriquecerlo, mejor. Hay que perder el miedo a que los lectores abandonen nuestras páginas. Si los contenidos son de interés, no lo harán. Además, si incluímos enlaces a otros blogs, es probable que se haga un pingback automático. Un pingback es una notificación en forma de comentario que le llega al post referenciado indicándole que en otro sitio se está siguiendo esa misma conversación.
  • Leer y comentar en otros blogs, para formar lo que se conoce como barrio blogosférico. No sólo nos inspirará para escribir cosas nuevas, sino que retroalimentará los contenidos de nuestros propios blogs con comentarios cruzados del resto de “vecinos” del barrio.
  • Respetar las licencias de los contenidos que utilicemos de otras personas. Si acompañamos nuestros posts de imágenes, buscar aquellas que sean libres o con licencias que nos lo permitan (indicando la autoría de las mismas): Creative Commons, colorIURIS, …

1.6. Plataformas

Muchos son los lugares donde podremos crear un blog de una forma rápida y sencilla. Pero antes de entrar en detalle sobre los principales sistemas de publicación de contenidos, vamos a dividirlos en dos grandes grupos, en base al alojamiento de los datos:

  • Por un lado tenemos los que están en plataformas ajenas que ofrecen un espacio bajo su propio dominio. Es decir, aquellos blogs de los que no nos tenemos que preocupar de su instalación. Sólo será necesario crear una cuenta y empezar a escribir. Los ejemplos más relevantes de este conjunto son Blogger, Wordpress.com, Blogia, Nireblog, La Coctelera, TypePad, …
  • Por otro lado encontramos los paquetes de software que es necesario instalar y alojar en nuestro servidor y bajo nuestro dominio. A eso hay que sumar las posibles actualizaciones que habrá que aplicar para mejorar la funcionalidad o evitar vulnerabilidades de seguridad. Ejemplos: Wordpress.org, Movable Type, Drupal,…

Nosotros nos vamos a centrar en Wordpress.

1.7. Wordpress

Con WordPress tenemos dos opciones: crearnos un blog en su plataforma comercial (wordpress.com) o en nuestro propio servidor gracias a su software bajo licencia GPL (wordpress.org). En ambos casos el gasto es cero pero con excepciones. En el primero, determinadas funcionalidades son de pago (por ejemplo, la posibilidad de editar el css de nuestra plantilla) y en el segundo, el coste estará en el servidor en el que decidamos montar nuestro blog.

En 2003, el proyecto b2\cafelog, que contaba con unos 2000 blogs, se dividió en dos ramas: b2evolution y WordPress. De la mano de Matt Mullenweg y Mike Little, la plataforma ganó muchos usuarios coincidiendo con el cambio de licencia de Movable Type.

Es de código abierto, está escrito en php y usa MySQL como gestor de base de datos. Uno de sus puntos más fuertes es la enorme comunidad de desarrolladores que tiene a sus espaldas. Al ser software libre, cualquiera puede escribir un plugin para agregar una funcionalidad determinada: desde la más rara (que nos aparezcan frases del musical Hello, Dolly! en nuestro panel de administración) a la más avanzada. Por esta razón tenemos un gran repositorio de plugins y plantillas para personalizar tanto como queramos nuestra bitácora.

Como curiosidad queda que cada nueva versión recibe el nombre de una leyenda del jazz: Miles Davis, Art Blakey, Charles Mingus, Billy Strayhorn,…

  • Pros de WordPress.org: es software libre, lo que nos aporta una transparencia de su funcionamiento. Además cuenta con una gran comunidad de desarrolladores que mantienen el sistema vivo y en continua evolución. El contenido es completamente tuyo dado que eres tú el que almacena los archivos y la base de datos del blog. Se tiene un control total sobre el diseño. Permite importar contenidos de otras plataformas como Blogger, LiveJournal, Movable Type, … Se puede ampliar fácilmente la funcionalidad de este gestor de contenidos mediante extensiones.
  • Contras de WordPress.org: somos los responsables de la instalación y del mantenimiento del software y WordPress se caracteriza por las continuas actualizaciones para mejorar versiones anteriores y arreglar los fallos que éstas pudieran tener. Se necesita disponer de alojamiento y de dominio. Las copias de seguridad corren de nuestra cuenta.
  • Pros de WordPress.com: la plataforma evoluciona al mismo ritmo que su hermana libre (WordPress.org), lo que hace que sea un sistema que se adapta a las novedades que aparecen en la cambiante Red. Nos ahorramos los gastos de un servidor y un dominio propio, así como el trabajo que supone actualizar la versión del software.
  • Contras de WordPress.com: si deseamos instalar plugins o hacer modificaciones sobre el diseño de nuestra bitácora, deberemos tirar de cartera. Lo mismo que para ampliar los 3 GB de espacio para el almacenamiento de imágenes y ficheros subidos. Nuestros datos están en servidores de “la nube”.

Adiós Blogger! Hola Wordpress!

a las 23:42

loretahur-wordpressNo sé que me pasa en las vacaciones navideñas, pero este blog siempre tiene un cambio en la parte técnica (debe ser la crisis del polvorón). En 2006 tocó pasar de Blogger a Blogger Beta. En el 2007 abandoné la dirección de blogger para tener dominio propio y también cambié el diseño. Como este año no podía ser menos, por fin digo adiós a Blogger, migrando a Wordpress bajo mi propio servidor.

De Blogger sólo puedo decir buenas palabras. Nunca he tenido ningún problema gordo y he estado la mar de a gusto, pero quitar parte de mis datos de la Gran Nube y ser dueña y señora de ellos, me reconforta. Tras hacer la migración del blog de Julen ya no me quedaban más excusas. La pereza había retrasado este momento, pero ya puedo decir que Google tiene una parte menos de mi ser digital.

El aspecto es casi igual al que tenía antes, pero seguro que los comentaristas agradecerán tener un formulario en condiciones para dejar sus pareceres :)

¡Adiós Blogger! ¡Hola Wordpress!

Feliz SysAdminDay

a las 9:00

bofh1Cuando instalas Wordpress, la primera extensión con la que te topas es ya de lo más friki: Hello Dolly, cuya único fin es el de generar frases aleatorias de la mítica canción de la película.

Pues para celebrar hoy el día del administrador de sistemas (esa persona tan poco valorada por el resto de trabajadores de la empresa… ), os presento un plugin para wordpress aún más curioso: wp-bofh. Su funcionalidad consiste en desplegar citas BOFH en tus posts o plantillas, de forma aleatoria.

Una pena que hoy no trabaje, porque estoy segura de que me llegarían grandes muestras de gratitud por parte de mis usuarios (por si no se ha notado, remarco con texto el tono de ironía aplicado a esta última frase).

Eso me recuerda que tenemos un poco abandonado nuestro blog de BOFH. Si alguien se quiere animar y colaborar con nosotros, que me escriba.

Categorías

Archivo