Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Los mensajes flash no se traducen correctamente en una aplicación Symfony

18 de marzo de 2015

Tengo unos mensajes flash, para avisar cuando se ha hecho un cambio en la base de datos:

$this->get('session')->getFlashBag()->set('success', array(
    'title' => $this->get('translator')->trans('flash.title.order'),
    'message' => $this->get('translator')->trans('flash.message.order', array('%entidad%' => $edit))
));

Y aquí tengo las traducciones:

flash:
    title:
        save: Se ha guardado correctamente.
        edit: Se ha editado correctamente.
        delete: Se ha borrado correctamente.
        status: Se ha cambiado el estatus correctamente.
        order: Se ha cambiado el orden correctamente.
        newBooking: Se ha creado correctamente la resreva

    message:
        save:  La %entidad%  ha sido creada.
        edit:  La %entidad%  ha sido editada.
        delete:  La %entidad%  ha sido borrada.
        status:  El estado de %entidad%  ha sido creado.
        order: El orden de la %entidad% ha sido cambiado.
        newBooking: El codigo de su reserva es: %entidad%. Se han enviado los datos a su email: %email%.
        newmessage: Su mensaje ha sido eviado
        newsletter: Se ha suscrito a la newsletter

Las traducciones están la carpeta correcta (AppBundle\Resources\Translations) porque el resto de traducciones me funciona correctamente.

He probado a borrar la caché y nada.

Saludos


Respuestas

#1

Buenas, puedes colocar el código que has implementado para mostrar esos mensajes?

@manuel_j555

18 marzo 2015, 14:28
#2
<div class="col-md-8 alerta">
    {% for type, flashMessage in app.session.flashbag.all() %}
        <div class="alert alert-{{ type }} fade in">
            <a data-dismiss="alert" class="pull-right" href="" type="button">
                <i class="fa fa-times"></i>
            </a>
            {% if flashMessage.title is defined %}
                <strong>{{ flashMessage.title }}</strong><br>
                {{ flashMessage.message }}
            {% endif %}
        </div>
    {% endfor %}
</div>

@TsubasaAkai

18 marzo 2015, 15:08
#3

¿Cuál es el resultado que ves en el navegador?

  • Ves la clave del mensaje en vez de su contenido (ejemplo: flash.title.order)
  • Ves el mensaje bien, pero no en español.
  • Ves el mensaje en español, pero mal formado (por ejemplo no se muestra el nombre de la entidad sino la cadena %entidad%).

@javiereguiluz

18 marzo 2015, 15:14
#4

Perdón, me olvide de comentarlo: veo

flash.editar.titulo flash.editar.mensaje

@TsubasaAkai

18 marzo 2015, 15:31
#5

Recuerdo que alguna vez me ha pasado lo mismo. Si los comandos cache:clear y cache:warmup no funcionan, te aconsejo que borres la caché "a lo bruto" destruyendo el contenido del directorio app/cache/*.

Por otra parte, alguna vez también me ha pasado que el archivo de traducción no tenía el nombre correcto. Fíjate en el nombre del locale y su extensión y compáralo con los demás archivos que dices que sí que te funcionan bien.

@javiereguiluz

18 marzo 2015, 16:51
#6

Ya lo solucioné. Comenté todo lo que tenia y a continuacion lo volví a escribir debajo y ya me los cogió.

Cuando tenga algo más de tiempo ya lo investigaré con más calma.

@TsubasaAkai

23 marzo 2015, 22:29