este poste viene prefaciado por este otro b.yokim.net/346
aquí tengo mi solución para la necesidad de mantener un blog trilingüe que atiende a lectores monolingües. (necesidad de separar los contenidos y los contextos)
separar los posts usando categorías
creé una categoría por idioma, y siempre cuando escribo algo lo incluyo en al menos uno de las categorías de idioma. Stephanie Jane Booth climbtothestars.org/archives/2005/01/23/basic-bilingual-plugin/ ha hackeado WP para incluir un ítem en el menú de edición usando un meta info, pero básicamente no sé cómo hacerlo (algo no funcionó cuando lo probé) y a pesar de que mi método es semánticamente incorrecto, el upgrade a WP 1.5 me confirmó que simplemente no tengo mucho tiempo para editar custom plugins cada vez que hago un upgrade. como estudiante, no. como organizador, problablemente menos. so lo que uso son un montón de in_category statements para cada idioma.
implementación
como siempre voy a estar haciendo if in_category statements, el siguiente archivo está en my-hacks.php para reducir un poco el código.
function lang ($es,$cr,$en,$none)
{
if (in_category(21)) { $langtext = $cr; }
else { if (in_category(23)) { $langtext = $es; }
else { if (in_category(22)) { $langtext = $en; }
else { $langtext = $es; }
}}
echo $langtext;
}
cada número es el número de categoría de mis idiomas, y es, cr, en son el mismo (o corresopndiente) texto en cada idioma. cuando un texto tiene varios idiomas, el primero en la lista (primero coreano, después castellano, después inglés) se elige.
incluí $none por si se da el caso que ninguno de los idiomas aplica (a veces envío dibujos solamente, y cientos de mis posts antiguos a través de livejournal no están reclasificados). por el momento, cuando ninguno aplica $es se aplica por defecto, pero eventualmente lo cambiaré por $none una vez que tenga una clara idea de lo que me propongo hacer con posts no clasificados.
de ahí, lo único que necesito hacer es reemplazar todos los plain texts por algo como
lo cual se puede colocar dentro del loop o fuera de ello.
dentro del loop, funciona de forma localizada en cada post (me refiero a la vista del main template con varios posts).
fuera del loop, no estoy seguro lo que ocurre. cuando miro cada categoría ( b.yokim.net/c/cr por ejemplo), ése es el valor que toma
cuando no estoy mirando ninguna categoría, o si estoy mirando una categoría no lingüística, el valor es el último valor que tomó dentro del loop. tengo 5 posts que aparecen con cada listado. si el último post es coreano, entonces todos mis lang() statements en el sidebar (que están fuera del loop) toman el valor 21 (coreano) lo mismo ocurre con el inglés y el castellano.
creo que ya sé qué es. al parecer con cada post las funciones internas le dan a cada in_Category un valor binario, pero no lo resetea después de que termina el loop. por ende, el valor in_category(21)=true permanece en la memoria, y aparece en el sidebar. pero no puedo formatearlos tampoco, porque esto me sirve para crear copias localizadas (para cada categoría), así que la única manera sería crear una versión del menú para frontpage y categorías que no son idiomáticas, pero sería bastante trabajo doble. por el momento me limité a borrar todo el menú para dichas secciones
esto se puede interlazar con otros códigos más creativamente. por ejemplo, así codifiqué mi libro de visitas para cada idioma:
< a href="/libro de
visitas’,’217/»>방명록’,’344/»>guestbook’,»);?>
lo cual el php lang está metida en medio de un href y me ahorra un poco de código.
errores/limitaciones
creo que el php statement no puede estar incluído en otros php statements, pero esto no lo he podido confirmar. es una intuición, pero definitvamente tengo error de vez en cuando. el último fue cuando usé esta función en comment_number
otras aplicaciones
esto debería ser algo bien reconocido para gente que hace codificación con WP
1. crear un sitio socioculturalmente asimilado. los coreanos usando mucho el libro de visitas. es parte de la forma en que se relacionan por la web. por ende, necesito crear un libro de visitas para coreanohablante, pero al parecer hablantes de otros idiomas no lo necesitan, en realidad. yo creo que más usarían el email para ello. por eso, la parte de libro de visitas que mostré allí arriba bien podría cambiarse por y armar el completo rollo sólo para coreanohablantes. similarmente, los anglohablantes no usan cosas como el recent comments, algo que podría quitarse usando (así solo queda para coreano y castellano.
2. tengo varios trabajos académicos en el blog. también tengo poemas. y contenido regular de lo que normalmente se consideraría un «blog». el problema, es que quería ponerles información de «cite this» en cada post, pero el formato deseado para cada uno variaría. para trabajos académicos de antropología, sigo el American Anthropological Association style guide.
Kim, Yongho
2003 Maasai Identity as a Subject of Tourism. Electronic document. http://b.yokim.net/101/ , accessed February 19, 2005
para trabajos de filosofía, quiero el Chicago Style. Para papers, quiero un formato más formal con detalles sobre publicación, y para cosas normales quiero uno informal con nadamás el título y dirección. So lo que hice fue crear varios if in_Category statements para esto y le puse include.
archivo completo, cite_this.php
:
<?php edit_post_link(''); ?>
Deja una respuesta