La traduzione non funziona con il pangrattato aggiunto da XML


8

Sto costruendo una pagina personalizzata.

Aggiungo il pangrattato in questo modo (e funziona bene).

<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>

Il problema è l'etichetta non tradotta in front-end. Mostra Home / All Brandsinvece della versione tradotta.

Le cose che mi sono assicurato:

  1. Aggiunto translate="label"al gestore
  2. Cache cancellata (in seguito ho disattivato la memorizzazione nella cache)
  3. La sintassi della traduzione è corretta (ho inserito Mage_Core.csv)
  4. L'etichetta è tradotta correttamente dal codice php (ad esempio: $helper->__('All Brands');

Aiutami a capirlo, per favore.

Grazie.


1
Quando translate="label"hai aggiunto hai incluso anche module="brand_brand"(o qualunque cosa dovrebbe essere nel tuo caso)?
pspahn,

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

Grazie @pspahn, provo a dirtelo più tardi. Solo un minuto. Grazie.
Tran Dinh Khanh,

Nel tuo link, la risposta dice che If the module attribute is not present, the core module is used.ho aggiunto il termine di traduzione in Mage_Core.csv all'inizio, quindi perché non funziona ancora? Aggiungo solo il nome del modulo (e anche il file di traduzione del modulo) ma non funziona ancora. Continuo a ispezionare. Un minuto.
Tran Dinh Khanh,

Risposte:


14

Per tradurre una briciola senza usare un aiuto, puoi usare l' translateattributo per il tuo actionnodo usando crumbInfo.labele crumbInfo.title.

Esempio:

<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>

È il modo migliore per tradurre il pangrattato, utilizzare gli helper solo se hai impostato un titolo personalizzato in base ai parametri URL o qualcos'altro.


Grazie Frederic. Semplice ma funziona. L'ho provato in Magento 1.9.1.0
Andhi Irawan il

@PeterJaapBlaakmeer Grazie! Sì, penso davvero che la mia risposta dovrebbe essere la risposta accettata. È più facile e non hai bisogno di un altro aiuto.
Frédéric MARTINEZ,

1
Ho contrassegnato la tua risposta come accettata perché trovo più facile farlo in molti casi. Grazie. La tua risposta è arrivata abbastanza tardi quando l'ho fatta molto tempo fa, ecco perché non è stata accettata.
Tran Dinh Khanh,

3

Nota che puoi anche generare collegamenti per breadcrumb usando la classe helper.
Utilizzando la classe helper, sopra il blocco XML può apparire come:

<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>

E aggiungi i metodi getHomeUrl()& getBrandUrl()nel tuo Helper / Data.php del tuo modulo come:

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')
        );
    }
}

Funziona abbastanza bene, ma hai idea del perché la traduzione non funziona se usi la <crumbInfo><label></label></crumbInfo>strada?
TimPietrusky,

Ho pubblicato la mia risposta qui sotto, non sono in grado di ottenere il pangrattato giusto nel mio modulo personalizzato
Sushivam,

0

Sto provando lo stesso di seguito:

nel mio file 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 \ locale \ Magenshop \ Ricetta \ Helper \ Data.php

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

Sto ottenendo solo:

1) / Ricette / Pagina corrente

2) Nessun link alla Home page ...


Assicurati che il nome delle tue estensioni sia "ricetta", non "magenshop / ricetta".
Tran Dinh Khanh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.