Foros del Web » Programando para Internet » PHP » Symfony »

BreadcrumbsBundle no funciona el paso de variables

Estas en el tema de BreadcrumbsBundle no funciona el paso de variables en el foro de Symfony en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 16/07/2016, 06:01
 
Fecha de Ingreso: abril-2013
Mensajes: 75
Antigüedad: 11 años, 7 meses
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

Etiquetas: paso, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:54.