pequeño hack para un blog trilingüe utilizando in_category

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

    <div id="div_cita" style="float:right;">
    <a href="#" onclick="layer_toggle(document.getElementById
    ('div_cita'));
    layer_toggle(document.getElementById
    ('div_citb')); return false; ">

    <a href="
    ?paper=1"><img src="/i/key_print.gif"
    title="">

    :
    <?php edit_post_link(''); ?>

    <div id="div_citb" style="display:none;">

    .
    ,
    .
    . .

    <!-- -->
    t

    y después se incluye así:

    < h2 id="post-«>< a href="» rel=»bookmark» title=»Permanent Link: «>

    asimismo, registré mi sitio en un metablog coreano llamado allblog.net . al comienzo registré b.yokim.net/c/cr/feed , el cual daba todos mis posts en coreano al sitio. después me di cuenta que quería controlar un poco la producción, pero que para cada post moderado tenía que ingresar «수집거부» en el texto. mi alternative fue creatr una categoría para allblog, y decirles que vayan a c/meta/feed y categorizar posts allí sólo cuando quería mandar cosas al meta. cuando esto occure, tengo un jacascript que se desquita de frames, y allblog usa frames para recomendar artículos en base a un sistema de rankings. so le agregué un botón al final del texto que dice «이 글을 올블로그에 추천» ( no hay neceisdad de hacer esto en varios idiomas al menos por ahora porque es sólo en coreano) pero sólo cuando está clasificado como meta.

    también, cuando la gente que usa blogs con euc-kr encoding me manda trackabcks, se pierde el contenido (pero no el url) del mensaje, lo cual se puede recuperar usando un script provisto por 골빈해커 (él tiene un transformador que cambia euc-kr por utf-8 y viceversa. para mas info sobre la su solución, ver hacker.golbin.net/tt/index.php?pl=140 nadamás hay que mandar el trackback a http://tr.golbin.net/?to=dirección del trackback esto se muestra cuando el post es coreano

    3. logré crear espacios bastante monolingües como para que gente que tiene recepción sobre otrosidiomas puedan venir sin tanto problema. ada sitio está bajo /c/ y el código de idiomas. feed proporciona archivos XML para gente que lee mis posts usando un lector pero que son monolingües.


    Comentarios

    Una respuesta a «pequeño hack para un blog trilingüe utilizando in_category»

    1. 다중언어 끄적임를 위한 부치개 둘 – is_lang($언어)

      조건형 태그의 형태로 사용되는 is_lang(). 가로 사이에 원하는 언어를 넣어주면 된다. 예전에 개발한 lang(‘$castellano’, ‘$한족어’, ‘$english’, ‘etcétera’); 의 경우 ‘ ‘ 사이에 php 태그를 못 집어

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *