Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Últimas entradas de blog bilingüe

Estas en el tema de Últimas entradas de blog bilingüe en el foro de WordPress en Foros del Web. Llevo desde ayer dándole vueltas a un tema y no consigo resolverlo. A ver si alguien me puede echar un cable. Estoy preparando una web ...
  #1 (permalink)  
Antiguo 07/09/2008, 08:17
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Pregunta Últimas entradas de blog bilingüe

Llevo desde ayer dándole vueltas a un tema y no consigo resolverlo. A ver si alguien me puede echar un cable.

Estoy preparando una web en dos idiomas (castellano y euskara), que también tendrá un blog Wordpress en ambos idiomas. En el blog lo resuelvo mediante qTranslate, una auténtica maravilla que te permite tener un mismo texto en varios idiomas, sin tener que duplicar las entradas.

En los documentos de la web lo resuelvo de otra manera. La URL de cada documento llevará un parámetro ?lang=cas o ?lang=eus, dependiendo del idioma en el que quiera ver el documento el usuario. Escribo el contenido en ambos idiomas, y los etiqueto con class="cas" y class="eus". Mediante el siguiente código determino cuál de los dos contenidos no se mostrará:

Código:
    if ($lang != 'eus')
    {
    $hide = 'eus';
    $lang = 'cas';
    }
    else
    {
    $hide = 'cas';
    $lang = 'eus';
    }
Y oculto el idioma marcado como $hide mediante CSS:

Código:
    <style type="text/css">
    <? echo "$hide"; ?>, .<? echo "$hide"; ?> * { display: none; }
    </style>
Hasta aquí todo bien. El problema viene cuando quiero mostrar en la portada de la web las últimas entradas del blog. Siguiendo este ejemplo, las he puesto mediante el siguiente código:

Código:
    <?php require_once("./blog/wp-config.php"); ?>
    <?php $my_query = new WP_Query('showposts=6');
    while ($my_query->have_posts()) : $my_query->the_post();
    $do_not_duplicate = $post->ID; ?>
    <h3><?php the_time('Y/m/d'); ?> <a href="<? the_permalink(); ?>"><? the_title(); ?></a></h3><? the_content(); ?>
    <?php endwhile; ?>
Y sí, las muestra, pero con dos inconvenientes:

* En vez de "leer más" me aparece "more...", sin traducir del inglés.

* Tanto en la portada en en castellano (con lang="cas") como en la portada en euskara (con lang="eus") me muestra las noticias en castellano (que es el idioma por defecto). De hecho, cuando una noticia está redactada únicamente en euskara (mi intención es que la mayoría sean bilingües, pero no siempre será así), me muestra el texto "lo siento, esta entrada está únicamente disponible en euskara". Eso me viene bien en la portada en castellano, pero no en la portada en euskara.

Es normal que no me muestre los contenidos en euskara si no se lo he indicado de ninguna manera. Entonces mi duda es, ¿cómo hago para indicarle que quiero que me saque los contenidos únicamente en euskara para la portada en ese idioma? Lo he intentado metiendo el siguiente código justo después de la llamada a wp-config.php:

Código:
    <?php
    if ($lang != 'eus')
    {
    define ('WPLANG', 'es_ES');
    }
    else
    {
    define ('WPLANG', 'eu');
    }
    ?>
Pero no funciona. Sigue mostrándome "more..." en vez de "leer más", y sigue mostrándome las noticias únicamente en castellano incluso con la portada en euskara. ¿Alguien sabría darme alguna pista?

PD: He comentado algo también en este tema, pero no me parece correcto desviar la atención respecto de la consulta planteada por Eminem24, así que he preferido consultarlo en un tema aparte.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #2 (permalink)  
Antiguo 07/09/2008, 11:39
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Respuesta: Últimas entradas de blog bilingüe

¡Creo que lo he resuelto! Dejadme hacer unas pruebas para confirmarlo, y os cuento cómo lo he hecho.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #3 (permalink)  
Antiguo 07/09/2008, 12:02
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Respuesta: Últimas entradas de blog bilingüe

¡Funciona!

Primero, en el primer bloque de código, inserto una nueva variable, $wp_lang, cuyo valor puede ser "es" o "eu", correspondiendo cada uno a un idioma.

Código:
<?
if ($lang != 'eus')
	{
	$hide = 'eus';
	$lang = 'cas';
	$wp_lang = 'es';
	$title = $title_cas;
	}
else
	{
	$hide = 'cas';
	$lang = 'eus';
	$wp_lang = 'eu';
	$title = $title_eus;
	}
?>
Justo después de enlazar wp-config.php, le digo que tome la variable $wp_lang como valor para $q_config['language'] (la clave está aquí, y me ha costado horrores encontrarla):

Código:
<?php
	require_once("./blog/wp-config.php");
	$q_config['language'] = $wp_lang;
?>
Lo siguiente se mantiene igual:

Código:
<?php
	$my_query = new WP_Query('showposts=10');
	while ($my_query->have_posts()) : $my_query->the_post();
	$do_not_duplicate = $post->ID; ?>
?>
Y ahora, el toque mágico:

Código:
<h3><span class="fecha"><?php the_time('Y/m/d'); ?></span> <a href="<? the_permalink(); ?>"><? the_title(); ?></a></h3>
<? the_content(__('[lang_es]leer m&aacute;s[/lang_es][lang_eu]gehiago irakurri[/lang_eu]')); ?>
<?php endwhile; ?>
Espero que sea útil a alguien.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:45.