You are here

Modulo Fivestar en castellano

Uno de los módulos que me gusta bastante de Drupal es Fivestar, me resulta agradable y en realidad es un widget que aporta un poco más de feedback de los visitantes.

No sé porque motivos parte de las cadenas que se muestran están en el mismo código y no en los tipícos ficheros Gettext, así que para las sucesivas actualizaciones me he permitido crear un parche para no tener que editar el fichero cada vez.

Este es el parche, nada del otro mundo:

847c847
<           $title = $title_display ? t('Your rating') : NULL;
---
>           $title = $title_display ? t('Creo que') : NULL;
853c853
<           $title = $title_display ? $user_vote->value ? t('Your rating') : t('Average') : NULL;
---
>           $title = $title_display ? $user_vote->value ? t('Creo que') : t('Media') : NULL;
859c859
<         $title = $title_display ? t('Average') : NULL;
---
>         $title = $title_display ? t('Media') : NULL;
970c970
<       $form['vote']['#title'] = t('Average');
---
>       $form['vote']['#title'] = t('Media');
975c975
<       $form['vote']['#title'] = t('Your rating');
---
>       $form['vote']['#title'] = t('Creo que');
980c980
<       $form['vote']['#title'] = $values['user'] ? t('Your rating') : t('Average');
---
>       $form['vote']['#title'] = $values['user'] ? t('Creo que') : t('Media');
985c985
<       $form['vote']['#title'] = t('Your rating');
---
>       $form['vote']['#title'] = t('Creo que');
992c992
<         '#value' => theme('fivestar_static_element', $static_average, $settings['title'] !== FALSE ? t('Average') : NULL),
---
>         '#value' => theme('fivestar_static_element', $static_average, $settings['title'] !== FALSE ? t('Media') : NULL),
1153c1153
<     $output .= '<span class="user-rating">'. t('Your rating: <span>!stars</span>', array('!stars' => $user_rating ? $user_stars : t('None'))) .'</span>';
---
>     $output .= '<span class="user-rating">'. t('Creo que: <span>!stars</span>', array('!stars' => $user_rating ? $user_stars : t('None'))) .'</span>';
1161c1161
<     $output .= '<span class="average-rating">'. t('Average: <span>!stars</span>', array('!stars' => $average_stars)) .'</span>';
---
>     $output .= '<span class="average-rating">'. t('Media: <span>!stars</span>', array('!stars' => $average_stars)) .'</span>';
1214c1214
<     drupal_add_js(array('fivestar' => array('titleUser' => t('Your rating') .': ', 'titleAverage' => t('Average') .': ')), 'setting');
---
>     drupal_add_js(array('fivestar' => array('titleUser' => t('Creo que') .': ', 'titleMedia' => t('Media') .': ')), 'setting');
1266c1266
<         $options[$this_value] = t('Give it @star/@count', array('@star' => $i, '@count' => $element['#stars']));
---
>         $options[$this_value] = t('Le doy un @star de @count', array('@star' => $i, '@count' => $element['#stars']));

Que conseguimos parcheando?

Pues esto es lo que tenemos por defecto:

Módulo Fivestar

Y al final del post podéis ver el susodicho widget después de parchear.

Parchear? Como?

En 2 pasos, descargar y parchear:

wget http://bytecoders.net/files/fivestar.module.patch
patch ruta/al/fichero/fivestar.module < fivestar.module.patch

Mejor así, no?

Drupal: 
GNU/Linux: 
Qué te parece: 

Comments

Aunque es una forma sencilla de traducirlo, teniendo en cuenta que las cadenas van dentro de la función "t" de traducción de Drupal, creo que sería mejor no aplicar el parche y hacer la traducción desde la propia interfaz de Drupal ya que sino, al actualizar el módulo tendremos que volver a aplicar los cambios. Un ejemplo podría ser en esta web ya que el módulo de votaciones, en el momento de escribir este comentario, vuelve a estar en inglés...

Un saludo.

Hola Javier,

primero agradecerte por el aviso y la solución propuesta. La verdad es que solo puedo decir que tienes toda la razón, ya que resulta una forma más limpia y controlada de tener las traducciones. Yo simplemente me fijé en como estaban puestas las cadenas en el módulo y simplifiqué la operación en hacer una traducción de forma literal.

Aunque me queda una duda, ya que sí en la próxima versión el módulo no está codificado para que lea las traducciones desde el mismo interfaz de Drupal deberíamos parchearlo de todas maneras, no?

Creo que es ley de vida para el administrador de sistemas, después de actualizar comprobar que es lo que tenemos que parchear.

Saludos.