Cadenas personalizadas para traducción usando el plugin Polylang

24 ene 2013, 00:11:37
Vistas: 53.9K
Votos: 9

Estoy usando WP 3.5 y el plugin Polylang 0.9.8 para hacer traducciones a diferentes idiomas.

Todo está bien y el plugin funciona correctamente, pero ahora me enfrento a un problema -- necesito traducir cadenas personalizadas, por ejemplo, las cadenas dentro de los widgets.

¿Qué me pueden recomendar para resolver este problema?

AGREGADO: Por ejemplo (estoy hablando sobre el texto en widgets, pero no del encabezado), ¿puedo agregar algunas constantes de cadena o algo similar y escribirlas desde código PHP en mi página -- y hacer que se puedan traducir en la página de Traducción de Cadenas de Polylang?

2
Comentarios

Esta pregunta no tiene una respuesta clara en su forma actual. La forma en que abordarías la traducción de esas cadenas tiene mucho que ver con cómo están escritos tus plugins y tema, y es un tema amplio.

s_ha_dum s_ha_dum
24 ene 2013 01:53:22

¿Cómo puedo hacer la pregunta más concreta?

NG_ NG_
27 ene 2013 21:01:47
Todas las respuestas a la pregunta 1
2
14

Usa esto

pll_register_string()

en functions.php

Úsalo así:

pll_register_string

Permite que los plugins agreguen sus propias cadenas en el panel de "traducción de cadenas". La función debe ser llamada en el lado del administrador (el archivo functions.php está bien para temas).
Uso:

pll_register_string($name, $string, $multiline);
‘$name’ => (requerido) nombre proporcionado para ordenar convenientemente (ej: ‘miplugin’)
‘$string’ => (requerido) la cadena a traducir
‘$multiline’ => (opcional) si se establece en true, el campo de texto de traducción será multilínea, por defecto es false

Entonces:

pll_register_string('Título del Encabezado', 'El título que deseas que aparezca');

Luego en la configuración del panel de control, en idiomas, vas a encontrar una pestaña llamada "cadenas". Allí vas a tener esta nueva cadena creada, y un campo de texto para llenar la traducción para cada idioma activo en tu sitio. Escribe las traducciones, y luego usa las funciones:

pll_e() para hacer echo directamente, o pll__() para hacer echo manualmente. Lo vas a usar así:

pll_e('El título que deseas que aparezca'); o
echo pll__('El título que deseas que aparezca');

¡Eso es todo! :)

13 feb 2013 12:16:36
Comentarios

¡Gracias! Ese era el problema. Es extraño que, siendo una pregunta sencilla, nadie haya respondido durante tanto tiempo.

NG_ NG_
14 feb 2013 11:35:19

¿No debería pll llamar al nombre de la variable, en lugar de su contenido? -> pll_e('Header Title'); ?

red-o-alf red-o-alf
20 jul 2018 12:12:42