Siguiendo con el post Crear web multi-idioma paso a paso con Polylang aquí te explico como modificar cadenas de texto con Polylang. Suele suceder que en algunas plantillas encuentres que no se tradujeron algunos elementos, botones, títulos, etc. con estas funciones que te comentaré podras hacerlo sin ningun problema.
Función de polylang: pll_register_string()
Lo primero que debes hacer es añadir en el archivo functions.php del tema de wordpress la función
pll_register_string( $name, $string, $group, $multiline);
Por cada cadena que desees traducir debes añadir esta línea, acá te indico que contiene cada parámetro de la función:
$name => (obligatorio) el nombre que le damos a la cadena
$string => (obligatorio) la cadena que queremos traducir (no ha de ser completa, puede ser una referencia pero siempre teniendo el cuidado de no repetirla)
$group => (opcional) grupo en el que registramos la cadena, por defecto ‘polylang’
$multiline => (opcional) con el valor true, el campo para el texto será más grande, por defecto el valor es false
Por ejemplo:
/* Cadenas polylang */
pll_register_string("Contacta", "Contáctanos", "Footer");

Luego de guardar el archivo functions.php vamos a Ajustes > Idioma > Traducción de cadenas y nos encontraremos con la siguiente tabla en la cual podremos modificar las traducciones de nuestras cadenas.
Función de polylang: pll__()
Con esta función llamamos a las traducciones de las cadenas creadas, solo tendremos que pasar la cadena a la función pll__($string);
A esto lo haremos en el archivo donde quieras mostrar esa cadena de texto (p.e.:
page.php, single.php, home.php …) siguiendo nuestro ejemplo deberías pegar lo siguiente:
<?php echo pll__("Contactanos"); ?>
Si te sirvió esta guía comparte o déjanos tus comentarios.
Si buscas Hosting WordPress completo para todos los tipos de sitios web
- Aprovécha la instalación automática de WordPress y del potente WordPress Starter para crear un sitio web totalmente funcional en unos minutos.
- Transfiere tu sitio WordPress en solo unos pocos clics con el plugin gratuito SiteGround Migrator o solicita una migración profesional del sitio web realizada por expertos.
- Actualiza automáticamente tu aplicación y plugins WordPress y aplicando parches contra exploits comunes relacionados con WordPress a través de su firewall de seguridad. También obtienes el plugin SiteGround Security todo en uno preinstalado para proteger tu sitio web de ataques de fuerza bruta, hackeos comunes, fugas de datos y mucho más.
- Obtén una solución integral de rendimiento WordPress que acelere drásticamente tus sitios. Está construida sobre la plataforma Google Cloud e incluye un CDN gratuito y el plugin SiteGround Optimizer gratuito para un potente almacenamiento en caché, optimizaciones front-end e imágenes, control de versiones de PHP y más. En GrowBig y planes superiores, también obtienes un servicio PHP un 30% más rápido.
Hola, he visto tu artículo y me ha venido francamente bien pero no consigo saber como llamar a la función en la página en la que quiero que aparezca.
Tengo el siguiente CODIGO:
[CODE]
// Returning Thank-You-Page
$bookingFormOutput .= ‘
‘.__(‘Thank you for your booking request!’, ‘advanced-booking-calendar-pro’).’
‘.__(‘We have sent you an email including a summary of your booking!’, ‘advanced-booking-calendar-pro’).’
‘;
$bookingFormOutput .= abc_booking_setPageview(‘bookingform/booking-successful’); // Google Analytics Tracking
}else{
// Returning Error-Page
$bookingFormOutput .= ‘
‘.__(‘Something went wrong’, ‘advanced-booking-calendar-pro’).’
‘.__(‘There was a technical error. Please submit your booking request again.’, ‘advanced-booking-calendar-pro’).’
‘;
$bookingFormOutput .= abc_booking_setPagev[/CODE]
¿Como demonios hago para poner el código [CODE]echo pll__(‘Gracias por solicitar la reserva con nosotros’);[/CODE] en mitad de ‘.__(‘Thank you for your booking request!’, ‘advanced-booking-calendar-pro’).’???? MIL GRACIAS
Hola Ana, lo que que quieres remplazar es una cadena, supongo que guardando el contenido que devuelve la función pll_() en una variable y luego usando esa variable en donde quieres traducir el texto debería funcionar. Prueba esto:
$texto = pll__(‘Gracias por solicitar la reserva con nosotros’);
// Returning Thank-You-Page
$bookingFormOutput .= ‘
‘.__($texto, ‘advanced-booking-calendar-pro’).’
Espero que te sirva. Saludos.
Hola Ana! Estoy traduciendo una página inmobiiaria con polylang y va bastante bien excepto por 2 botones; search y view listing, que vienen por defecto en inglés y que me traen por el camino de la amargura desde hace varios días.
He agregado en functions.php pll_register_string(‘View listing’, ‘Ver más’); y pll_register_string(‘Search’, ‘Buscar’); y efectivamente, en Ajustes > Idioma > Traducción de cadenas, me aparecen las cadenas para traducir. El problema es que no sé donde colocar exactamente echo pll __ (‘Ver más’); y echo pll __ (‘Buscar’); para aparezcan los botones traducidos en la página, he probado colocándolos en todos los archivos del tema, uno por uno, pero nada… ¿podrías ayudarme? muchas gracias en cualquier caso…