Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/07/2016, 06:01
weltxo
 
Fecha de Ingreso: abril-2013
Mensajes: 75
Antigüedad: 11 años
Puntos: 2
BreadcrumbsBundle no funciona el paso de variables

Hola amigos, espero que alguno de ustedes haya tenido el problema que tengo yo, para que pueda ayudarme a solucionarlo y compartirlo entre todos ustedes.

Como sabrán BreadcrumbsBundle es una herramienta bastante útil para la generación automática de Migas de Pan en html. El problema surge en el momento de realizar la traducción con el paso de parámetros.

Según cuenta la documentación del propio bundle, esta es la sintaxis para hacer uso de las traducciones:

Código:
// Example with parameter injected into translation "user.profile"
$breadcrumbs->addItem($txt, $url, ["%user%" => $user->getName()]);
Les enseñaré el contenido de mi controller que crea el objeto correspondiente:

Código:
        // white_october_breadcrumbs
        $breadcrumbs = $this->get("white_october_breadcrumbs");
        $breadcrumbs->addItem("community");
        $breadcrumbs->addItem(
            "profile.user",
            $this->get("router")->generate("fos_user_community_user", array('username' => $username),
            ["%user%" => $user->getName()])
        );
Estoy usando dos archivos de traducción, inglés y español, como verán a continuación:

Código:
            <trans-unit id="community">
                <source>community</source>
                <target>Community</target>
            </trans-unit>
            <trans-unit id="profile.user">
                <source>profile.user</source>
                <target>%user%'s profile</target>
            </trans-unit>
Código:
            <trans-unit id="community">
                <source>community</source>
                <target>Comunidad</target>
            </trans-unit>
            <trans-unit id="profile.user">
                <source>profile.user</source>
                <target>Perfil de %user%</target>
            </trans-unit>
Pero por desgracia, sólo traduce correctamente el primer elemento "Community". Resultado final:

Código HTML:
<ol>
    <li>
        <span>Comunidad</span>
        <span class='separator'></span>
    </li>
    <li>
        <span>Perfil de %user%</span>
    </li>
</ol> 
Código HTML:
<ol>
    <li>
        <span>Community</span>
        <span class='separator'></span>
    </li>
    <li>
        <span>%user%'s profile</span>
    </li>
</ol> 
Como podéis observar, imprime %user% literalmente en lugar de tomar el valor de $user->getName()

Gracias por adelantado

Última edición por weltxo; 16/07/2016 a las 06:25