La traducción no funciona en migas de pan agregadas por xml


8

Estoy construyendo una página personalizada.

Agrego migas de pan como este (y funciona bien).

<brand_brand_index translate="label">
        <reference name="breadcrumbs">
            <action method="addCrumb">
                <crumbName>Home</crumbName>
                <crumbInfo>
                    <label>Home</label>
                    <title>Home</title>
                    <link>/</link>
                </crumbInfo>
            </action>
            <action method="addCrumb">
                <crumbName>All Brands</crumbName>
                <crumbInfo>
                    <label>All Brands</label>
                    <title>All Brands</title>
                </crumbInfo>
            </action>
        </reference>
        [[...]]
    </brand_brand_index>

El problema es la etiqueta no traducida en el front-end. Se muestra en Home / All Brandslugar de la versión traducida.

Las cosas que me aseguré:

  1. Agregado translate="label"al controlador
  2. Caché borrado (de hecho, apagué el almacenamiento en caché)
  3. La sintaxis de traducción es correcta (puse en Mage_Core.csv)
  4. La etiqueta se traduce correctamente por código php (por ejemplo: $helper->__('All Brands');

Ayúdame a resolverlo, por favor.

Gracias.


1
¿Al agregar translate="label"también incluyó module="brand_brand"(o lo que sea que sea en su caso)?
pspahn

<crumbInfo translate="label" module="brand_brand">- Ver: stackoverflow.com/questions/7550429/…
pspahn

Gracias @pspahn, intento contarte más tarde. Solo un minuto. Gracias.
Tran Dinh Khanh

En su enlace, la respuesta dice If the module attribute is not present, the core module is used.que agrego el término traducir en Mage_Core.csv al principio, entonces, ¿por qué todavía no funciona? Solo agrego el nombre del módulo (y el archivo de traducción del módulo también) pero todavía no funciona. Sigo inspeccionando. Un minuto.
Tran Dinh Khanh

Respuestas:


14

Para traducir una miga sin usar un ayudante, puede usar el translateatributo para su actionnodo usando crumbInfo.labely crumbInfo.title.

Ejemplo:

<reference name="breadcrumbs">
    <action method="addCrumb" translate="crumbInfo.label crumbInfo.title">
        <crumbName>home</crumbName>
        <crumbInfo>
            <label>Home</label>
            <title>Home</title>
            <link>/</link>
        </crumbInfo>
    </action>
    <action method="addCrumb" translate="crumbInfo.label crumbInfo.title">
        <crumbName>brands</crumbName>
        <crumbInfo>
            <label>All Brands</label>
            <title>All Brands</title>
        </crumbInfo>
    </action>
</reference>

Es la mejor manera de traducir las migas de pan, use ayudantes solo si tiene un título personalizado que depende de los parámetros de URL o algo más.


Gracias Frederic Simple pero funciona. Lo he probado en Magento 1.9.1.0
Andhi Irawan

@PeterJaapBlaakmeer ¡Gracias! Sí, realmente creo que mi respuesta debería ser la respuesta aceptada. Es más fácil y no necesitas otro ayudante.
Frédéric MARTINEZ

1
Marqué su respuesta como aceptada porque me resulta más fácil de hacer en muchos casos. Gracias. Su respuesta llegó bastante tarde cuando lo hice hace mucho tiempo, por eso no fue la aceptada.
Tran Dinh Khanh

3

Tenga en cuenta que también puede generar enlaces para migas de pan utilizando la clase auxiliar.
Usando la clase auxiliar, el bloque XML anterior puede verse así:

<brand_brand_index translate="label">
    <reference name="breadcrumbs">
        <action method="addCrumb">
            <crumbName>Home</crumbName>
            <params helper="module/getHomeUrl" />
        </action>
        <action method="addCrumb">
            <crumbName>All Brands</crumbName>
            <params helper="module/getBrandUrl" />
        </action>
    </reference>
    [[...]]
</brand_brand_index>

Y agregue los métodos getHomeUrl()& getBrandUrl()en Helper / Data.php de su módulo como:

class Namespace_Module_Helper_Data extends Mage_Core_Helper_Abstract
{
    //...

    public function getHomeUrl()
    {
        return array(
            'label' => Mage::helper('module')->__('Home'),
            'title' => Mage::helper('module')->__('Home'),
            'link' => Mage::getUrl(),
        );
    }

    public function getBrandUrl()
    {
        return array(
            'label' => Mage::helper('module')->__('All Brands'),
            'title' => Mage::helper('module')->__('All Brands')
        );
    }
}

Esto funciona bastante bien, pero ¿tienes alguna idea de por qué la traducción no funciona si usas la <crumbInfo><label></label></crumbInfo>opción?
TimPietrusky

He publicado mi respuesta a continuación, no puedo obtener las migas de pan adecuadas en mi módulo personalizado
Sushivam

0

Estoy intentando lo mismo que a continuación:

en mi archivo xml:

<reference name="root">
        <action method="unsetChild"><alias>breadcrumbs</alias></action>
        <block type="page/html_breadcrumbs" name="breadcrumbs" as="breadcrumbs">
            <action method="addCrumb">
                <crumbName>Home</crumbName>
                <params helper="recipe/getHomeUrl" />
                <!-- <crumbInfo>
                    <label>Home</label>
                    <title>Home</title>
                    <link>/</link>

                </crumbInfo> -->
            </action>
            <action method="addCrumb">
                <crumbName>Recipes</crumbName>
                <crumbInfo>
                    <label>Recipes</label>
                    <title>Recipe Home Page</title>
                    <link>/recipe</link>
                </crumbInfo>
            </action>
            <action method="addCrumb">
                <crumbName>Current Page</crumbName>
                <crumbInfo>
                    <label>Current Page</label>
                    <title>Current Page</title>
                </crumbInfo>
            </action>
        </block>
    </reference>

\ app \ code \ local \ Magenshop \ Recipe \ Helper \ Data.php

public function getHomeUrl()
{
    return array(
        'label' => Mage::helper('module')->__('Home'),
        'title' => Mage::helper('module')->__('Home'),
        'link' => Mage::getUrl(),
    );
}

Solo estoy obteniendo:

1) / Recetas / Página actual

2) Sin enlace a la página de inicio ...


Asegúrese de que el nombre de su extensión sea "receta", no "magenshop / receta".
Tran Dinh Khanh
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.