¿Cómo traducir el nombre de una plantilla de WordPress?

4 minutos de lectura

Sé cómo crear traducciones para temas y plantillas generalmente generando archivos .po y .mo con Poedit, por ejemplo. Pero dado que los nombres de las plantillas están escritos en comentarios de PHP en la parte superior de cada archivo de plantilla, no hay forma de traducir esto tal como lo veo.

Encabezado de la plantilla de WordPress:

/**
 * Template Name: Three columns
 *
 * @package WordPress
 */

El nombre de la plantilla es analizado de alguna manera por WordPress y se usa para completar el menú desplegable de selección de plantilla al crear una página.

Entonces mi pregunta es: ¿Hay alguna forma de traducir el nombre de una plantilla de WordPress? ¿WordPress también busca alguna variable específica que pueda configurar en mi archivo de plantilla? o es simplemente imposible?

Me topé con eso hace poco. Así es como solucioné esto:

Primero, agregue (si ya no tiene eso) Text Domain: mytext_domain para usted style.cssdónde mytext_domain es el dominio de texto real para su tema.

Luego agregue una llamada ficticia a la función de traducción en algún lugar de su tema (lo mejor es agregarla justo debajo de la declaración del Nombre de la plantilla, para que no se pregunte por qué la puso):

/**
 * Template Name: Three columns
 *
 * @package WordPress
 */
__( 'Three columns', 'mytext_domain' );

La razón para hacer esto es porque WordPress pasa el nombre de su plantilla al translate() función, pero dado que los complementos del traductor analizan su código, no saben que el nombre de su plantilla debe ser parte del archivo .po (¿o era .mo?). La llamada ficticia a __() soluciona ese problema.

Y la razón por la que agregas Text Domain declaración a su estilo.css es porque aquí es donde WordPress busca el dominio de texto de su tema cuando está analizando los nombres de las plantillas.

No puedo darte las fuentes exactas, ya que realmente me limité a hurgar en el código central, hasta que descubrí cómo funciona y cómo poder traducir los nombres de mis plantillas.

PP: No estoy seguro de cómo funciona Poedit; si agrega sus traducciones a mano, es posible que no necesite la llamada ficticia; solo pruebe con y sin él y use el que mejor se adapte a sus necesidades 🙂

  • ¡Excelente! Eso hizo el truco. 🙂 Es extraño que casi no haya documentación sobre esto. Para aclarar a los demás: debe agregar Text Domain: mytext_domain en los comentarios de definición de su tema en style.css.

    – jamietelin

    26 de noviembre de 2012 a las 10:45

  • Sí, prácticamente no está documentado en absoluto. comencé desde este boleto y luego me abrí paso a través de los archivos principales hasta que entendí cómo funciona 🙂

    – Nikolá Ivanov Nikolov

    26 de noviembre de 2012 a las 10:47

avatar de usuario
Otón

Mejor método:

  1. Añade el Text Domain: theme-slug encabezado a su archivo style.css, si aún no lo ha hecho.

  2. Obtenga un pago del paquete oficial de desarrollador de WordPress revisando el baúl de desarrollar.svn: http://develop.svn.wordpress.org/trunk/

  3. Allí encontrará un directorio llamado /tools/i18n. En ese directorio hay un makepot.php expediente. Puede usarlo para temas de la siguiente manera:

> php makepot.php wp-theme /path/to/your/theme/directory theme-slug.pot

Esto creará el archivo POT por usted, utilizando el último código de WordPress. Obtiene las cadenas de los encabezados, de todas las funciones de WordPress i18n, todo. También significa que no necesita crear cadenas “falsas” como sugiere la otra respuesta.

Asegúrate de hacer un svn update de vez en cuando también, ya que las herramientas i18n y el código principal del tronco se pueden actualizar para cosas nuevas de vez en cuando.

Tenga en cuenta que al usar las herramientas i18n, deben estar en la caja del maletero. No puede moverlos en el sistema de archivos, porque dependen de las funciones de WordPress para realizar parte del análisis de los archivos, por lo que tienen rutas de inclusión relativas que retroceden en el árbol hasta el directorio /src del núcleo de WordPress. El directorio troncal en su conjunto debe estar intacto para que las herramientas funcionen correctamente. Sin embargo, el directorio troncal se puede desconfigurar, no necesita tener una instalación funcional de WordPress, solo necesita algo del código de WordPress para analizar los archivos correctamente.

¿Ha sido útil esta solución?