Saltar al contenido Saltar a la barra lateral

Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.

Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.

Sun Mon Tue Wed Thu Fri Sat
- - 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00
- - - - - - -

Zona horaria del soporte: America/Lima (GMT-05:00)

Etiquetado: 

Este tema contiene 5 respuestas, tiene 2 voices.

Última actualización por Andreas W. hace 1 año, 12 meses.

Asistido por: Andreas W..

Autor Publicaciones
noviembre 30, 2023 a las 7:26 pm #14967005

francisco-manuelC

Buenas tardes,
He insertado un nuevo fragmento de código php en el plugin Code Snippets. Ahora quiero traducir las cadenas literales que vienen en el código y que se visualizan en el frontend y no sé como.

¿Pueden indicarme cómo hacerlo? gracias.
Francisco

noviembre 30, 2023 a las 10:58 pm #14967979

Andreas W.
Partidario de WPML desde 12/2018

Idiomas: Inglés (English ) Español (Español ) Alemán (Deutsch )

Zona horaria: America/Lima (GMT-05:00)

Hola Francisco,

¿Podrías proporcionarme un ejemplo de código?

Debes aplicar una llamada PHP GetText y luego escanear el plugin "Code Snippets" en busca de nuevas cadenas en WPML > Localización de tema y plugins.

Guías:
https://wpml.org/documentation/support/translating-the-theme-you-created/

https://wpml.org/es/documentation-2/guia-de-inicio/traduccion-de-cadenas/buscar-cadenas-que-no-aparecen-en-la-pagina-traduccion-de-cadenas/

Después de eso, deberías poder traducir las cadenas en WPML > Traducción de cadenas.

https://wpml.org/es/documentation-2/guia-de-inicio/traduccion-de-cadenas/

Saludos
Andreas

diciembre 1, 2023 a las 9:31 am #14970455

francisco-manuelC

Buenos días Andreas,
Gracias por tu ayuda. Te facilito un fragmento del código que he insertado donde aparece una de las cadenas literales que quisiera traducir. Es la siguiente:

add_action( 'woocommerce_register_form', 'we_new_field_register_woo' );
function we_new_field_register_woo(){
?>
<p class="form-row form-row-wide">
<label for="sum_result"><?php _e( '14+1 = ?', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="sum_result" id="sum_result" value="<?php if ( ! empty( $_POST['sum_result'] ) ) esc_attr_e( $_POST['sum_result'] ); ?>" />
</p>
<?php
}

Como puedes ver, aparece la cadena "14 + 1=?" a la que me gustaría añadir algún texto y traducir a otros idiomas. Dices que debo hacer una llamada PHP GetText, pero como no soy programador, te agradecería si me pudieses dar un ejemplo con el código que te he facilitado para así implementarlo.
La segunda parte, la de analizar el plugin en busca de nuevas cadenas ya sé como hacerlo. La dificultad estriba en la llamada PHP Gettext.
Muchas gracias,
Francisco

diciembre 1, 2023 a las 3:02 pm #14974083

Andreas W.
Partidario de WPML desde 12/2018

Idiomas: Inglés (English ) Español (Español ) Alemán (Deutsch )

Zona horaria: America/Lima (GMT-05:00)

Hola

Parece que una llamada GetText no funciona con WPML cuando se usa el plugin Code Snippets.

Te sugiero que agregues el código al archivo functions.php de tu Child Theme que debería funcionar como se espera.

Si usas Code Snippets, deberías poder registrar la cadena con este gancho:
https://wpml.org/wpml-hook/wpml_register_single_string/

Ejemplo:
$my_string = do_action( 'wpml_register_single_string', 'Prueba de formulario', 'Hacer matemáticas', '14+1 = ?' );

Saludos
Andreas

diciembre 1, 2023 a las 7:56 pm #14975545

francisco-manuelC

Hola Andreas,
Gracias por la ayuda. He insertado este código del ejemplo a continuación del código que ya tenía en Code Snippets. Efectivamente, cuando escaneo el plugin se añaden las cadenas para su traducción. Pero cuando las traduzco, y voy a la url donde deberían aparecer traducidas, no lo están. Aparecen en el idioma original.
¿A qué puede deberse?
Gracias,
Francisco

diciembre 1, 2023 a las 9:19 pm #14976269

Andreas W.
Partidario de WPML desde 12/2018

Idiomas: Inglés (English ) Español (Español ) Alemán (Deutsch )

Zona horaria: America/Lima (GMT-05:00)

Hola Francisco,

Realmente sugeriría no usar "Code Snipepts" para este propósito.

Estas utilizando un Child Theme y simplemente puedes agregar la hook al archivo functions.php mientras usas una llamada GetText como en tu primer ejemplo y escaneas el tema en busca de cadenas.

Por otro lado, también podría ser que el formulario de registro tenga problemas para mostrar cadenas en un segundo idioma.

Puedo ofrecer un sitio de prueba de WPML en el que podemos intentar recrear el problema, en caso de que el uso del Child Theme no sea una solución.

Saludos
Andreas

El tema '[Cerrado] Traducir cadenas de Code Snippets' está cerrado a nuevas respuestas.