Ayuda:Extensión:Translate/Traducción de elementos no estructurados

This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 100% complete.

Esta página explica cómo hacer la traducción de mensajes personalizados de interfaces wiki un poco más manejable, con la extensión Translate. Se aplica a cualquier parte de la wiki que quieras proporcionar automáticamente en el idioma de la interfaz del usuario. El ejemplo típico es la barra lateral, porque solo puede haber una, pero el mismo método se puede utilizar para la página principal, si quieres tener todas sus traducciones bajo el mismo título, o incluso para las plantillas.

Este método es aplicable también al contenido wiki donde la traducción completa de la página simplemente no encaja, como las páginas densas en marcado o plantillas, cuyo marcado no quieres exponer a los traductores. Todo esto gira en torno a los mensajes de interfaz, o la palabra mágica {{int:}}, que permite incluir mensajes de interfaz en cualquier lugar donde se puede escribir wikitexto. Esta palabra mágica permite sustituir automáticamente el mensaje de la interfaz, ya sea estándar, personalizado o nuevo, en el idioma de interfaz del usuario.

Se puede utilizar para llevar el poder de la localización automática de la interfaz del wiki al contenido de la wiki, pero no resuelve el problema para los usuarios anónimos, que no pueden cambiar el idioma de la interfaz predeterminado. Véase la nota sobre la extensión Universal Language Selector más abajo.

Comparado con la traducción de páginas, este método tiene algunas desventajas:

  1. Los desarrolladores de MediaWiki suelen desalentar el uso de {{int:}} porque fragmenta la caché. En lugar de almacenar una sola versión generada de una página en la caché, al emplearse {{int:}}, debe almacenarse en la caché potencialmente en cientos de idiomas.
  2. Es más difícil de instalar y requiere acceso a la configuración del wiki.
  3. No hay seguimiento automático de traducciones desactualizadas y las estadísticas de progreso pueden ser imprecisas cuando se añaden o eliminan mensajes.
  4. Solo los administradores del wiki pueden añadir mensajes a los grupos de mensajes y traducirlos. Esto significa que el sistema solo es apropiado para páginas que no cambian a menudo; de lo contrario, los administradores tendrán mucho trabajo.

Lo bueno es que funciona la mayor parte del tiempo a la par que te permite hacer el trabajo. Hay dos tutoriales que proporcionan ejemplos de los casos de uso habituales. Antes de eso, hay una sección que detalla cómo configurar un grupo de mensajes, algo que siempre es necesario a la hora de utilizar este método.

Configuración

Un administrador de servidor debe completar este paso. Hay que añadir el siguiente fragmento de código a LocalSettings.php :

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'Barra lateral' );
	$mg->setDescription( 'Mensajes utilizados en la barra lateral de este wiki.' );
	$list[$id] = $mg;
	return true;
};

El identificador del grupo de mensajes, wiki-sidebar, debe ser único, así que no reutilices el mismo identificador para varios grupos. El segundo parámetro del constructor WikiMessageGroup, sidebar-messages, se refiere a la página [[MediaWiki:Sidebar-messages]]. La etiqueta se muestra en menús desplegables y otros lugares donde puedes seleccionar un grupo de mensajes. La descripción se muestra en Special:Translate. Esos son los valores que puedes y debes cambiar a lo que se ajuste a tu wiki a la hora de agregar un nuevo grupo personalizado de mensajes.

Cómo traducir la barra lateral

Asumimos que el paso de configuración ha concluido. Entonces debes seguir con cuidado la guía de personalización de la barra lateral. Asumamos que creaste la siguiente barra lateral básica:

* sidebar-commonpages
** FAQ|sidebar-faq

Y [[MediaWiki:Sidebar-commonpages]] contiene Common pages, mientras que [[MediaWiki:Sidebar-faq]] contiene Frequently asked questions.

Entonces todo lo que tenemos que hacer es ir a [[MediaWiki:Sidebar-messages]] (o lo que se haya definido en el paso anterior) y escribir ahí:

sidebar-commonpages sidebar-faq

Esto es, los nombres de los mensajes de sistema separados por un espacio y sin el prefijo del espacio de nombres «MediaWiki:».

Entonces ve a [[Special:Translate/wiki-sidebar]] (o lo que se haya definido en el paso anterior; consulta [[Special:Translate]] para la lista de grupos definidos). Ahora es posible traducir los mensajes a otros idiomas. Como todos los mensajes están en el espacio de nombres MediaWiki, solo los administradores de interfaz pueden editar la lista de mensajes y traducirlos.

Cómo traducir la página principal

Otro caso de uso es una página con mucho marcado o plantillas. La ventaja de este método es que el idioma aparece automáticamente en el idioma de interfaz del usuario. La desventaja es que, para cambiar el idioma en el que se muestra la página, hay que cambiar el idioma de interfaz.

La implementación es igual al del tutorial anterior:

  1. Configura un nuevo grupo de mensajes.
  2. Toma una página wiki.
  3. Reemplaza cada parte traducible por {{int:Mainpage-messagename}} y traslada el contenido a [[MediaWiki:Mainpage-messagename]].
  4. Ve a [[MediaWiki:Mainpage-messages]] (o a lo que se haya definido en la configuración) y agrega ahí los nombres de mensajes separados por espacios.
  5. Listo. Ve a [[Special:Translate]] para traducir la página principal.

He aquí un ejemplo. Supongamos que [[Main Page]] contiene:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} es una comunidad para chefs y panaderos amantes del chocolate''
</div>
Tenemos actualmente {{NUMBEROFPAGES}} páginas llenas de chocolate.

Luego cámbialo a:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

Crea [[MediaWiki:Mainpage-slogan]] con el contenido:

{{SITENAME}} es una comunidad para chefs y panaderos amantes del chocolate

Crea [[MediaWiki:Mainpage-pagecount]] con el contenido:

Tenemos actualmente {{NUMBEROFPAGES}} páginas llenas de chocolate.

Crea [[MediaWiki:Mainpage-messages]] con el contenido:

mainpage-slogan mainpage-pagecount

¡Listo! Puedes agregar o borrar mensajes cuando quieras.

Selector de idioma

No solo el usuario no puede elegir qué versión localizada de la página quiere leer a menos que cambie sus preferencias, sino que los usuarios anónimos no pueden establecer su idioma de interfaz de usuario y siempre utilizarán el idioma predeterminado del wiki. Una página traducida a través de este sistema estará en el idioma de contenido predeterminado si no proporcionas a los usuarios anónimos una forma de seleccionar su idioma.

Afortunadamente, hay una solución. Con la extensión Selector Universal de Idioma , es posible adivinar el idioma preferido del usuario y también dejarle elegir a mano otro idioma y almacenar la elección en una cookie sin necesidad de trucos como el parámetro uselang, que normalmente es adecuado solo para la depuración.