Para que los lectores puedan seleccionar el idioma que mas les interese, he decidido que voy a colocar una barra con las banderas de los idiomas disponibles antes del texto del Post.

Crear la Barra de Banderas.

Lo primero que tenemos que hacer es aplicar una expresión regular al contenido para extraer cuanto idiomas se están usando en las etiquetas “[lang= 'xx']”  para lo que usaremos las funciones “preg_match_all” y “array_unique“.

preg_match_all("/\[lang='(.*)'\]/",$text,$salida);
$idomas=array_unique($salida[1]);

Luego generaremos el código HTML necesario para poner las imágenes necesarias y los links con el parámetro ”lang=xx” del que ya hablamos en el primer capitulo. Cuando el idioma coincida con el que se esta usando, no pondremos el link.

$bar="
<div>";
foreach ($idomas as $i) {
    if($i!=$lang) $bar.="<a>";
    $bar.="<img src="/wp-content/plugins/ML/flags/{$i}.png" alt="" />";
    if($i!=$lang) $bar.="</a>";
}
$bar.="</div>
";
$text=$bar.$text;

Por lo que la función que filtra el contenido del Post quedaría así:

add_filter('the_content', 'filtro');
 
function filtro($text) {
	global $current_user, $wp_query , $post;
 
	$lang=$wp_query->query_vars['lang'];
	if(empty($lang)) $lang="es";
 
	preg_match_all("/\[lang='(.*)'\]/",$text,$salida);
	$idomas=array_unique($salida[1]);
 
	$bar="
<div>";
	foreach ($idomas as $i) {
		if($i!=$lang) $bar.="<a>";
		$bar.="<img src="/wp-content/plugins/ML/flags/{$i}.png" alt="" />";
		if($i!=$lang) $bar.="</a>";
	}
	$bar.="</div>
";
	$text=$bar.$text;
 
	return($text);
}

Continua en http://zxblog.laullon.com/2008/05/wordpress-en-varios-idiomas-iv/

Compartir: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • BarraPunto
  • StumbleUpon
  • TwitThis
  • e-mail