Permalink multi-idioma en qtranslate

15 nov 2011, 13:50:20
Vistas: 18K
Votos: 4

Estoy usando el plugin qtranslate en mi sitio WordPress para hacerlo multi-idioma.

Ahora tengo un requisito como:

Para inglés la URL debería verse como www.sitio.com/contacto-en Para francés la URL debería verse como www.sitio.com/fr/contacto-fr

¿Cómo puedo lograr esto? (usando qTranslate)

Nota: No debe aparecer ningún ID de publicación en medio

Según la publicación en https://wordpress.stackexchange.com/questions/24061/multilingual-permalinks-qtranslate probé http://www.3dolab.net/en/qtranslateslug-plugin-widget pero están ocurriendo errores de "página no encontrada". Parece que el autor ha dejado de mejorar ese plugin según el comentario 29 en esa página.

1
Comentarios

Estoy enfrentando exactamente el mismo problema, así que estoy muy interesado en esta solución. Desafortunadamente, estoy lejos de ser un experto en PHP y por lo tanto no logré hacer que funcione para mí. ¿Podrías por favor proporcionar un poco más de detalles sobre tu fragmento de código? Gracias de antemano.

User User
24 nov 2011 02:20:04
Todas las respuestas a la pregunta 3
1

En la configuración de qTranslate en el panel de administración, abre las opciones avanzadas y marca el botón de radio para usar prefijos de idioma después del nombre del dominio. Asumo que tienes el francés listado en la configuración de Idiomas del plugin, ¿correcto? Puedes esperar que las fechas se muestren incorrectamente después de eso, usa la función date de PHP para corregirlo en la configuración de tu idioma particular (editar idioma). Como j F. Ve un ejemplo en minexrussia.com/2011 donde el prefijo ru se coloca de la misma manera.

Para evitar el prefijo en, selecciona inglés como idioma predeterminado y marca la configuración en Opciones avanzadas para no mostrar el prefijo para el idioma predeterminado. Sugiero eliminar todos los demás idiomas excepto en y fr en la configuración del plugin.

15 nov 2011 16:03:00
Comentarios

Sí, tengo el francés en mi lista de idiomas. La fecha no debería aparecer en la URL. Mi requisito básico es que quiero poder asignar un slug diferente para cada idioma. Por ejemplo: /contacto-en para inglés, /contacto-fr para francés, como describí en mi pregunta.

Beniston Beniston
16 nov 2011 05:49:52
0

Tenemos el plugin "qtranslateslug-plugin-widget" funcionando en el área de administración para almacenar slugs en la tabla de slugs, y he implementado mi propio código en el lado del usuario.

En la página wp-blog-header.php he añadido mi código justo antes de la inclusión del archivo wp-load.php. Tomé la URL de $_SERVER['REQUEST_URI'], y usando el slug e idioma en ella, recuperé el nombre de la publicación y asigné la URI modificada a $_SERVER['REQUEST_URI'] apropiadamente.

Por ejemplo:

Antes de editar: $_SERVER['REQUEST_URI'] = '/fr/slug-en-frances';

Después de editar: $_SERVER['REQUEST_URI'] = '/nombre-de-publicacion';

Permíteme explicarlo de manera más detallada:

  1. Asignar $_SERVER['REQUEST_URI'] a una variable

  2. Obtener el slug dividiéndolo con la barra (/)

  3. Verificar el slug en la tabla de slugs de la base de datos que usa el plugin "qtranslateslug-plugin-widget" y obtener el ID de la publicación desde allí

  4. Usando el ID de la publicación, obtener el nombre de la publicación desde la tabla de posts

  5. Unirlo de la manera que mostré en el ejemplo anterior

  6. Asignarlo de nuevo a $_SERVER['REQUEST_URI']

22 nov 2011 11:09:43
0

Por favor, echa un vistazo a http://wordpress.org/plugins/qtranslate-slug/

Qtranslate es un buen plugin pero desafortunadamente hoy está desactualizado. Qtranslate Slug es un complemento para QTranslate, que añade soporte para traducciones de enlaces permanentes y corrige algunas deficiencias de QTranslate desde WordPress 3.0.

19 jun 2014 19:13:06