Cómo crear un sitio web multilingüe con Pelican

Pelican es un generador de páginas web escrito en Python con una gran flexibilidad. Este sitio web está hecho con Pelican y está disponible en varios idiomas1. Con Pelican hay dos opciones para traducir sitios web:

  1. Traducir artículos individuales.
  2. Crear un subsitio web entero (p. ej., freakspot.net/eo/) con plantillas traducidas.

Artículos individuales

Para la primera opción basta con instalar Pelican2 y crear dos archivos con el mismo Slug en la carpeta content/. Por ejemplo, en el archivo en español (como-destruir-Google.md) pondríamos algo así:

Author: Jorge Maldonado Ventura
Category: Privacidad
Date: 2022-11-06 19:00
Lang: es
Slug: Cómo-destruir-Google
Tags: acción directa, anuncios, boicot, Google, privacidad
Title: Cómo destruir Google

El modelo de negocio de Google se basa en recoger datos personales de
usuarios, venderlos a terceros y servir anuncios. La empresa también

Hay que especificar un idioma diferente (p. ej., Lang: eo) al del archivo traducido en el archivo en el otro idioma (en este ejemplo, como-destruir-Google.eo.md). Opcionalmente, se pueden añadir también Save_as y URL para internacionalizar las URLs.

Author: Jorge Maldonado Ventura
Category: Privateco
Date: 2022-11-06 23:51
Lang: eo
Slug: Cómo-destruir-Google
Save_as: kiel-detrui-Google/index.html
URL: kiel-detrui-Google/
Tags: rekta agado, reklamoj, bojkoto, Google, privateco
Title: Kiel detrui Google

La komerca modelo de Google baziĝas sur la kolekto de personaj datenoj de
uzantoj, la vendado de ili al aliaj firmaoj kaj la montrado de reklamoj. La firmaoj ankaŭ

Subsitios web

Para crear un subsitio es necesario usar la extensión i18n_subsites. Para ello hay que hacer lo siguiente:

  1. Descargar los archivos de la extensión en el directorio usado para alojar las extensiones. En mi caso se encuentra en plugins/i18n_subsites/.
  2. Activar la extensión y configurar los subsitios que queramos generar. En el siguiente ejemplo configuro solo un subsitio en esperanto:
PLUGINS = ['i18n_subsites']

I18N_SUBSITES = {
    'eo': {
        'SITENAME': 'Retejo pri libera kulturo',
        }
    }

Es recomendable traducir el tema del sitio web, es decir, los menús, el pie de página, etc. Para ello es recomendable usar GNU gettext. La extensión incluye una guía sobre cómo localizar temas con Jinja2 (en inglés) que puedes seguir.

Finalmente, usando las variables disponibles en la extensión se puede añadir una lista desplegable para cambiar de idioma y otras funcionalidades. Los metadatos del artículo deben ser como los que hemos puesto antes de ejemplo. Si te pierdes, puedes consultar el código fuente de sitios web que usan i18n_subsites. Por ejemplo, este sitio web tiene su código fuente disponible.


  1. En esperanto, portugués, alemán, inglés, español, ruso y rumano

  2. En Debian se ejecutaría sudo apt install pelican. Para instalar Pelican con Pip hay que ejecutar sudo pip3 install pelican

Comentarios