Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2015, 05:13
weltxo
 
Fecha de Ingreso: abril-2013
Mensajes: 75
Antigüedad: 11 años
Puntos: 2
FOSUserBundle y las traducciones

Hola amigos, he implementado el conocido bundle para el login & registro de usuarios. La verdad que es una auténtica maravilla, te quita mucho trabajo.

La cuestión, es que me falta un último detalle, y es que las etiquetas y mensajes sean traducidas al castellano.
He definido mi propio bundle 'UserBundle', en el que he sobre escrito las plantillas, aplicándoles estilos personalizados.
Por ejemplo, la plantilla del login, queda así:

src/UserBundle/Resources/views/Security/login.html.twig

Código:
{% extends "::base.html.twig" %}

{% block title %}
    {{ parent() }}Login
{% endblock %}

{% block body %}
    
    
    <!-- Page -->
    <div class="row">
        <div class="col-md-4">
            
            {% block fos_user_content %}
            {% include "UserBundle:Security:login_content.html.twig" %}
            {% endblock fos_user_content %}
            
        </div>
    </div>
    <!-- /.row -->

{% endblock %}
src/UserBundle/Resources/views/Security/login_content.html.twig

Código:
{% trans_default_domain 'FOSUserBundle' %}

{% if error %}
    <div class="alert alert-danger" role="alert">
        {{ error.messageKey|trans(error.messageData, 'security') }}
    </div>
{% endif %}


<form action="{{ path("fos_user_security_check") }}" method="post">
    <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
    
    <div class="control-group form-group">
        <div class="controls">
            <label for="username">{{ 'security.login.username'|trans }}</label>
            <input class="form-control" type="text" id="username" name="_username" value="{{ last_username }}" required="required" placeholder="Usuario/Email" />
        </div>
    </div>
    
    <div class="control-group form-group">
        <div class="controls">
            <label for="password">{{ 'security.login.password'|trans }}</label>
            <input class="form-control" type="password" id="password" name="_password" required="required" placeholder="Contraseña" />
        </div>
    </div>
    
    <div class="control-group form-group">
        <div class="controls">
            <input type="checkbox" id="remember_me" name="_remember_me" value="on" />
            <label for="remember_me">{{ 'security.login.remember_me'|trans }}</label>
        </div>
    </div>
    
    <div class="control-group form-group">
        <div class="controls">
            <input class="btn btn-success" type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" />
        </div>
    </div>
</form>
Cómo podéis ver, he mantenido la misma estructura por defecto, solo he añadido etiquetas para aplicar Bootstrap. Sin embargo, me aparecen los mensajes en inglés como 'repeat password' , 'register' y 'Logged in as...'.