Configurar Activity en español
El módulo activity permite desplegar un listado de la actividad en el sitio, monitorea la creación, actualización y la eliminación de nodos, comentarios, y mucho más. Este tutorial asume que eres un usuario que entiende qué es un token, y que ha usado el módulo Activity en su versión 6.1 o 5.4
El resultado de esto es tener un listado tipo Facebook con textos como este:
“Luis creó la noticia Drupal es lo mejor”.
En inglés no hay muchos problemas para mostrar correctamente el listado de actividades, tendríamos:
“Luis created the news item Drupal es lo mejor”.
Sin embargo, el español es difícil de configurar básicamente porque los verbos son irregulares, mientras que en inglés la gran mayoría de los verbos son regulares, especialmente si hablamos de “crear” o “create”. Por ejemplo, en inglés si queremos hacer que el verbo “create” esté en tiempo pasado, solo tenemos que agregar una 'd' al final, y tendríamos “created”. Esto es muy útil, pero en español la historia es completamente distinta. Veamos una tabla de cómo es en inglés y en español.
Inglés – Español
Luis created the video drupal rocks! - Luis creó el video drupal rocks!
Luis created the vidoe drupal rocks! - Luis ha creado el video drupal rocks!
You created the video drupal rocks! - Tu has creado el video U drupal rocks!
You created the video drupal rocks! - Tu creaste el video drupal rocks!
You created the video drupal rocks!- Tu habéis creado el video drupal rocks!
Como podemos ver, especialmente , en los casos en los que queremos utilizar la palabra “tu” en lugar del nombre del autor, las cosas se complican muchísimo en español.
Activity tiene una función que reemplaza el nombre del autor si este es el mismo al usuario que está viendo la información, en otras palabras, si Luis creó el video “drupal rocks!” y yo soy Luis, lo correcto no sería que dijera “Luis creó el video....” sino que dijera “Tu creaste el video...”, o “Tu has creado el video...” o “Tu habéis creado...”. Todo esto simplemente no es posible en español (al menos sin hackerar sereramente el módulo Activity). No hay que desilucionarnos, esto es muy dificil de lograr, tanto que ni siquiera Facebook lo hace. Facebook no utiliza “tu”, simplemente deja el nombre del usuario.
Configurando Activity
Ahora, ¿cómo podemos configurar activity para lograr que todo se vea bien?. Lo primero que tenemos que hacer es elegir cómo vamos a querer que se muestre la información, en mi caso escogí la más obvia y sencilla para el idioma español adaptado en México:
Luis creó el video drupal rocks!
Tu creó el video drupal rocks!
Como vemos, “Tu creó el video...” está muy lejos de ser gramaticalmente correcto, por lo que en la segunda parte de este tutorial cubriremos la parte de deshacernos del “Tu” y lo cambiaremos por “Luis”.
Ahora, para efectos prácticos, esta es la frase que tendremos en los campos de Visibilidad del Autor y Visibilidad para Todos.
Para el Autor:
[author] creó el [node-type] [node-link]
Para todos:
[author-all] creó el [node-type] [node-link]
¿Cuál es el resultado de esto? Para ambos, es:
“Luis creó el video drupal rocks!”
Tenemos que tener cuidado en cuál es nuestro tipo de contenido, por ejemplo, si estoy creando un video quiero que sea “el video”, si estoy creando una noticia quiero que sea “la noticia”.
Eliminando el “Tu”.
Para eliminar el “tu” y cambiarlo por el nombre del autor, tenemos que ir a nuestro template.php y escribir esto:
function phptemplate_activity_username($account, $self = FALSE) {
global $user;
return ($self && $user->uid == $account->uid) ? theme('username', $account) : theme('username', $account);
}Al final, todo debería de funcionar correctamente, si tienes cualquier comentario o duda no dudes en escribirlo.
Para configurar otras opciones como comentarios, og, etc. estas recomendaciones funcionan bien.
Comments Activity
Messages visible to the "Author" role.
[author] dejó el comentario [comment-link]... en [parent-node-link]
Messages visible to the "Parent node author" role.
[author] dejó el comentario [comment-link]... en [parent-node-link]
Messages visible to the "Parent comment author" role.
[author] dejó el comentario [comment-link]... en [parent-node-link]
Messages visible to the "All" role.
[author-all] dejó un comentario en [parent-node-link] diciendo [comment-link]...
OG Activity
Messages visible to the "Author" role.
[author] se unió al grupo [node-link]
[author] dejó el grupo [node-link]
Messages visible to the "All" role.
[author-all] se unió al grupo [node-link]
[author-all] dejó el grupo [node-link]
User Module Activity
Messages visible to the "Author" role.
[author] ha creado su cuenta
[author] actualizó los datos de su perfil
Messages visible to the "All" role.
[author-all] ha creado su cuenta
[author-all] actualizó los datos de su perfil
User Relationships Activity
Messages visible to the "All (approved relationships only)" role.
[author-all] y [requestee-all] se han convertido en [relationship-plural]
Messages visible to the "Requester" role.
[requestee] aprobó la solicitud de [author] de ser [relationship-plural]
Messages visible to the "Requestee" role.
[requestee] y [author] ahora son [relationship-plural]
- Inicie sesión o regístrese para enviar comentarios

Comentarios
no se trata de que sea mejor,
no se trata de que sea mejor, se trata de niveles, primero esta theme_ despues viene phptemplate_ que sobreescribe a theme_ y despues viene mytheme_ que sobreescribe a ambos. phptemplate_ es normalmente la mejor opción aunque si mal no lei por ahí en drupal.org esto va a cambiar en drupal 7 y lo mejor será usar el nombre del theme.
Te agradezco el comentario
Te agradezco el comentario Lelizondob, voy a tener presente esa información.
Estuve revisando los tokens del módulo activity y me parece que el mismo efecto de lo que quieren lograr en este post se lo puede lograr reemplazando los tokens [author] por [author-all]. ¿Me equivoco?
Actualmente estoy pensando en una solución un poco más elaborada que la posteada aquí. Si llego a algo bueno haré referencia en este post y lo documentaré para que otros puedan beneficiarse.
Saludos,
Luis
Ahora entendí mejor
Acabo de leer esto que no está en español pero tiene la información que buscaba:
http://drupal.org/node/55126
------------------------------------------------------
They can override these functions by using the name of the template engine instead of the theme name. This is preferred, because it makes it very easy to share these functions with other users who might be using a different theme. Or even share a single file of functions with several themes on the same site!
Some examples:
<?phpfunction phptemplate_item_list($items = array(), $title = NULL, $type = 'ul')
function smarty_item_list($items = array(), $title = NULL, $type = 'ul')
?>
------------------------------------------------------
Según dice, es mejor colocar phptemplate, no el nombre del tema, pese a que sí es posible.
Gracias :)
Pregunta
Disculpen si la pregunta es muy obvia pero el theming que hago casi siempre ha sido basado en CSS.
Uds. escribieron lo siguiente para cambiar el "tú":
function phptemplate_activity_username($account, $self = FALSE) {
global $user;
return ($self && $user->uid == $account->uid) ? theme('username', $account) : theme('username', $account);
}
¿Aquello siginifica que si mi tema es o se llama Sky debo de reemplazar lo que dice phptemplate por sky o me equivoco?
O sea, según lo que entendí mi template.php debería de quedar algo así:
function sky_activity_username($account, $self = FALSE) {
global $user;
return ($self && $user->uid == $account->uid) ? theme('username', $account) : theme('username', $account);
}
De todas formas yo voy a hacer mi intento. Muchas gracias por publicar estos contenidos.
Saludos a todos,
Luis Aveiga
PowDevel - Desarrollo de soluciones informáticas
que bakano
me gusta mucho drupal, es muy dinamico y mas para mi empresa