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 el foro 6 días a la semana, durante 22 horas por día.

This topic contains 8 respuestas, has 2 mensajes.

Last updated by Bernat Torras hace 3 años, 6 meses.

Assigned support staff: Bernat Torras.

Autor Publicaciones
septiembre 8, 2016 a las 6:59 am #1066919

marcalS

En el archivo author.php se comprueba el idioma con
if(ICL_LANGUAGE_CODE=='ca'){ ...}
else{...}
i según el idioma muestra una traducción o otra.

Pero de este modo en la cabecera me aparece el selector de idioma con solo la opción del idioma seleccionado y no se puede cambiar de idioma.

Como puedo solucionar esto?

septiembre 8, 2016 a las 2:22 pm #1068949

Bernat Torras

Hola marcalS,

Gracias por contactar con soporte, haré todo lo posible para ayudarte con esto! 🙂

El problema que comentas es algo extraño, ya que el hecho de usar if(ICL_LANGUAGE_CODE=='ca'){ ...} no debería afectar para nada el selector de idioma. Puedes confirmar que quitando este código se muestra bien el selector?

Si es así, podrías pasarnos el código entero de la página para que echemos un vistazo a ver si encontramos el origen del conflicto?

Gracias,
Bernat

septiembre 8, 2016 a las 3:40 pm #1069163

marcalS

Hola Bernat,

He probado de comentar el código y el selector sigue cargando solo la opción del idioma seleccionado.

La web trabaja con Toolset y esta pagina llama a campos personalizados de usuario.

Si quieres puedo pasarte el código en un mensaje privado.

septiembre 9, 2016 a las 3:31 pm #1071473

Bernat Torras

Hola marcalS,

Si, creo que lo mejor será echar un vistazo a tu backend y a tu tema para tratar de identificar el problema.

A continuación habilitaré un formulario privado en tu próxima respuesta para que puedas compartir estos datos con nosotros de forma totalmente privada y segura.

También sería útil que instalaras el plugin 'Duplicator' y lo usaras para generar un backup (package) de tu web. De esta forma, si tenemos que modificar algún archivo para realizar algún test, lo podremos hacer con una cópia local de tu web.

Gracias,
Bernat

septiembre 9, 2016 a las 5:12 pm #1071654

Bernat Torras

Hola marcalS,

He estado revisando tu web pero veo que en la plantilla archive.php se muestra el selector de idioma con todos los idiomas disponibles... Me estoy confundiendo o olvidando algo?

Podrías revisarlo y pasarme las indicaciones correctas para ver el error?

Por otra parte, he visto en tu código que usas un condicional con ICL_LANGUAGE_CODE para obtener un texto o otro. En principio no hay ningún problema con el código, pero seguramente te resultaría más cómodo registrar estas cadenas de texto como cadenas traducibles y traducir su contenido en WPML>Strings Translation. De esta forma te ahorrarás bastante código, pudiendo definir estas variables una sola vez (en vez de una vez por idioma). Por ejemplo:

$trucada= __("Telefonar","ylguides");
$t_form= __("Formulari de contacte amb el Guia","ylguides");
$nom=__("Nom: ","ylguides");"Nom: "; 
// ... 

Gracias,
Bernat

septiembre 9, 2016 a las 5:36 pm #1071695

marcalS

El problema no esta en el archive.php sino en el author.php que genera la informacion del usuario autor de los servicios.

Veo que en el autor mcsalu si que aparecen los tres idiomas pero en los otros no.

Por ejemplo en la url: hidden link

Otro problema es en las paginas de servicios no aparece el selector de idioma

Por ejemplo en la url: hidden link

Espero que me puedas ayudar.

I gracias por el consejo, lo tendré en cuenta.

septiembre 9, 2016 a las 6:18 pm #1071717

Bernat Torras

Hola marcalS,

Perdona, me refería al archivo author.php.

El motivo por el que no te aparece el selector de idiomas es porqué en ambos casos no existen traducciones para mostrar. Supongo que el autor que indicas no tiene contenido traducido y en el caso de la página de servicios, veo que se trata de un post type (guide services) que no está habilitado como traducible (puedes hacerlo traducible desde WPML>Translation Management>Multilingual content setup>custom posts).

Tal y como lo veo, tienes tres opciones:

1- Crear traducciones para el autor y los servicios

2- Por defecto WPML muestra en el selector sólo los idiomas con traducciones disponibles. Si quieres mostrar todos los idiomas aunque no tengan traducciones (redireccionando a la home) debes activar la opción "Link to home of language for missing translations" en WPML>Languages

3- Si ninguna de las anteriores opciones te vale y quieres hacer un selector de idioma personalizado que actúe según tus necesidades, puedes crearlo siguiendo esa documentación: https://wpml.org/documentation/getting-started-guide/language-setup/custom-language-switcher/

Espero que te ayude! 🙂

Gracias,
Bernat

septiembre 9, 2016 a las 6:36 pm #1071778

marcalS

De echo no me interesa que los servicios sean traducibles ya que se introducen en el idioma que se prestan. Y me interesa que cuando se buscan salgan todos en cualquier idioma.

Lo que no entiendo es que en el autor mcsalu si que salgan las tres opciones si no està traducido.

De echo no se donde se puede traducir la información de los autores.

septiembre 12, 2016 a las 11:06 am #1074651

Bernat Torras

Hola marcalS,

Seguramente no te salen el resto de idiomas en la página de autor porqué este autor no dispone de posts en el resto de idiomas.

El problema es que las URL que comentas no son de páginas de WordPress que se puedan traducir sino archivos concretos del tema que te muestran la información correspondiente en cada idioma (autor, posts de una categoría, etc). En estos casos WPML sólo muestra el selector de idioma cuando su contenido está traducido.

Creo que tus mejores opciones para mostrar el selector de idioma de todas formas son:

- Habilitar la opción "Link to home of language for missing translations" en WPML>Languages. El problema será que cuando no exista traducción de una página, te redirigirá a la home de este idioma.

- Cambiar estas páginas por plantillas customizadas para mostrar siempre la información y los resultados que desees. En el caso del autor deberías pasarle el autor como parámetro url y en la plantilla mostrar su información. Sólo deberías traducir la página de la plantilla para poder mostrarla en todos tus idiomas. Para el caso de los servicios, te aconsejaría crear otra plantilla php que realizara una query mostrando los servicios que desees. Podrias traducir la página, mostrando siempre los servicios que quieras.

Gracias,
Bernat