Saltar navegación

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
- 10:00 – 14:00 10:00 – 14:00 10:00 – 14:00 10:00 – 14:00 10:00 – 14:00 -
- 15:00 – 19:00 15:00 – 19:00 15:00 – 19:00 15:00 – 19:00 15:00 – 19:00 -

Zona horaria del soporte: Asia/Kolkata (GMT+05:30)

Este tema contiene 13 respuestas, tiene 3 voces.

Última actualización por Sumit hace 4 años, 6 meses.

Asistido por: Sumit.

Autor Publicaciones
diciembre 3, 2020 a las 5:54 pm #7589197

Sergio

Hola.

En la web que estoy desarrollando, al hacer consultas usando la API REST, si el usuario está logueado y el idioma seleccionado en el backend es el secundario (inglés), sólo se obtienen resultados en el idioma secundario, independientemente del idioma seleccionado en el frontend. Las urls son correctas pero lo que devuelven las consultas no.

Esto ocurre tanto para los endpoints por defecto de WordPress como para los personalizados.

Adjunto capturas de llamadas al endpoint de categorías en inglés y español, con resultados en inglés en ambos casos.

Cuando el idioma seleccionado en el backend es el principal (español) o el usuario no está logueado, los resultados que devuelven las consultas son correctos.

¿Alguna idea de por qué ocurre esto y cómo solucionarlo?

Gracias y un saludo.

Captura de pantalla 2020-12-03 a las 18.30.33.png
Captura de pantalla 2020-12-03 a las 18.31.49.png
diciembre 9, 2020 a las 12:34 pm #7624879

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,

Nuestras disculpas por la demora en responder, ya que estamos manejando muchas solicitudes de soporte en este momento.

¿Podrías ir a Complementos -> Agregar nuevo -> Comercial -> Buscar actualizaciones y asegurarte de que las últimas versiones de nuestros complementos estén instaladas y activas?

Luego, si posible, mientras el problema persista, verifiques si tienes el mismo problema, mientras deshabilitas cualquier complemento que no esté relacionado con WPML.

Si el problema persiste en una configuración mínima, proporciones acceso de administrador al sitio web para que podamos tomar una copia para la investigación.

El formulario de respuesta privada está habilitado.

Saludos cordiales
Andreas

diciembre 17, 2020 a las 10:23 am #7684281

Sergio

Buenos días, Andreas. Gracias por tu respuesta.

He hecho una prueba en una instalación limpia de WordPress con la siguiente configuración:
- versión 5.6 (también ocurre en 5.5.3)
- el theme es Twenty Twenty-One
- los únicos plugins utilizados son WPML Multilingual CMS 4.4.8 y WPML String Translation 3.1.6
- el formato utilizado para las url es mediante directorios (aunque el problema también aparece utilizando los nombres del idioma como parámetros).

He repetido el proceso:
- Llamadas al endpoint por defecto de categorías de la API REST con las URL de español e inglés.
- Cuando en el backend el idioma seleccionado es el predeterminado (español) los resultados son correctos, para las consultas en ambos idiomas.
- Cuando el idioma seleccionado en el backend es el secundario (inglés), independientemente de que la consulta se haga mediante la url en español o inglés, el resultado de la consulta siempre es en el idioma secundario. Adjunto capturas.

Además, he añadido un tercer idioma (alemán) y he repetido el proceso. El resultado es el siguiente:
- Si el idioma seleccionado en el backend es el principal, los resultados de las consultas en cada uno de los idiomas son correctos
- Si el idioma seleccionado en el backend es cualquiera de los secundarios (inglés o alemán), los resultados de las consultas en idiomas secundarios son correctos (url en inglés muestra inglés, url en alemán muestra alemán), pero la consulta al idioma principal da los resultados en el idioma seleccionado en el backend en lugar de en el idioma solicitado.

Dado que el problema existe tanto en una instalación con theme y plugins propios (de la que hablaba en el primer mensaje), como en una copia limpia de WordPress sin modificación alguna por mi parte, no tengo la sensación de que el problema esté en mi instalación.

Gracias y un saludo.

Captura de pantalla 2020-12-17 a las 10.11.12.png
Captura de pantalla 2020-12-17 a las 10.07.18.png
diciembre 18, 2020 a las 1:58 am #7689525

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,

Muchas gracias por tu mensaje.

Esto me parece extraño, ya que no puedo ver el problema en nuestro sitio web:

https://wpml.org/es/wp-json/wp/v2/categories/

Intentaré recrear esto en localhost y volveré en breve.

Verifique en WPML -> Traducción de taxonomía si las etiquetas base de la categoría y el slug están traducidos.
https://wpml.org/es/documentation-2/guia-de-inicio/traduccion-de-categorias-de-entradas-y-taxonomias-personalizadas/

Atentamente
Andreas

diciembre 18, 2020 a las 7:36 am #7690985

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,

He configurado una nueva instalación de WordPress en Localhost usando PHP 7.3.21 y mySQL 5.7.31.

El idioma predeterminado del sitio de WPML es ES y el segundo idioma es EN.

La estructura de la URL del sitio es "Idioma en directorios" mientras se usa un directorio para el idioma predeterminado.

Se creó una publicación y se asignó a una categoría y una subcategoría. Se realizó una prueba sin traducciones y luego de traducir un post y sus taxonomías.

No puedo recrear el problema. Ver captura de pantalla. ¿Hay tal vez algo que me perdí?

Atentamente
Andreas

rest.png
diciembre 18, 2020 a las 9:39 am #7691513

Sergio

Buenos días, Andreas.

Gracias de nuevo por tu respuesta.

¿En tu instalación has hecho la prueba seleccionando el idioma secundario en el backend? Es el caso en el que me aparece el error. Acabo de comprobar que el error no se produce cuando está seleccionado "Todos los idiomas", al igual que ocurre al seleccionar el idioma principal.

En principio las taxonomías están traducidas tanto en la web en desarrollo como en la instalación de prueba.

En cualquier caso, si vuelves a habilitar el formulario de respuesta privada te doy acceso para que puedas comprobar si hay alguna configuración errónea.

Un saludo y gracias.

diciembre 19, 2020 a las 12:22 am #7697433

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,

Si, de verdad, me perdí esto.

Ahora, mi sitio web tiene Ingles como segunda idioma y cuando cambio el Backend le lenguaje del sitio a Ingles y llame la REST API en ES mi resultado es en EN.

enlace oculto

[{"id":5,"count":0,"description":"","link":"http:\/\/localhost\/rest-test\/en\/category\/category\/"....

Ahora, esto se soluciona si vamos al perfil de WordPress y activamos la opción:

Configuración de idioma de WPML -> Idioma de edición -> Establecer el idioma de administración como idioma de edición.

Ahora recibo:

[{"id":3,"count":1,"description":"","link":"http:\/\/localhost\/rest-test\/es\/categoria\/categoria\/"...

Seria esto una solución adecuada?

Saludos cordiales
Andreas

diciembre 21, 2020 a las 8:32 am #7707409

Sergio

Hola,

gracias de nuevo por tu respuesta, Andreas.

He seguido tu recomendación pero el resultado sigue siendo el mismo. Cuando selecciono cualquiera de los idiomas secundarios (EN o DE) en el backend, las consultas en el idioma principal (ES) devuelven resultados del idioma seleccionado en el backend y no el de la consulta.

Un saludo.

diciembre 23, 2020 a las 2:05 am #7720129

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,

Muchas gracias por tu paciencia.

Si, veo ahora que el problema persiste también en mi sitio de pruebas. Nuestro equipo esta informado sobre el problema y voy a contactarte cuando tengo mas información sobre una solución.

Saludos cordiales
Andreas

diciembre 25, 2020 a las 10:28 am #7733273

Sumit
Colaborador

Idiomas: Inglés (English )

Zona horaria: Asia/Kolkata (GMT+05:30)

Hi,

Andreas is away for a while. If this is okay for you to continue in English then please let me know otherwise please wait for few days and Andreas will continue with you.

Thanks

diciembre 28, 2020 a las 10:44 am #7741259

Sergio

Hi, Sumit.

Yes, we can continue in English. No problem at all.

Thanks

diciembre 28, 2020 a las 12:22 pm #7741993

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)

Hello,

Indeed, I am on vacation until January, 2nd but I have investigated a little after receiving feedback from my colleague Sumit and I can confirm that the requests will result in the correct if you add the language parameter to the URL.

Example:

enlace oculto

Or, if using "Directory for default language":

enlace oculto

I hope this is an acceptable workaround for you. Let me know if it worked out for you.

Best regards
Andreas

diciembre 29, 2020 a las 8:13 am #7746559

Sergio

Hi, Andreas.

Thanks again for your help, but please, don't worry about this while you are on vacation.

I can confirm that API calls adding the language parameter return the expected results. Not an ideal solution but it works.

My question now is, since language code is already included in the url via directories, shouldn't it work without adding a language parameter too?

Thank you both and enjoy your vacation.

diciembre 30, 2020 a las 2:10 pm #7754817

Sumit
Colaborador

Idiomas: Inglés (English )

Zona horaria: Asia/Kolkata (GMT+05:30)

Hi,

Thank you for your understanding, we appreciate it!
I will continue with you regarding this issue.

The problem is the default language URL. enlace oculto
This URL does not include any language and it is hard to tell if the request from the backend or front-end.
Since REST API is used in the backend as well so should respect the backend language as well.

Adding lang or wpml_language parameter forces WPML to load the results from the defined language.

If you are working on some remote app that will send the request to your website then this issue will not affect the outcome, the problem exists only when using the same browser as logged-in and making rest request.

Anyway, we are still discussing this issue and we have not concluded this an expected behavior yet.
I will keep you posted, meanwhile, you can continue with the workaround.

Thanks!