A tradução não funciona nas trilhas de navegação adicionadas por xml

8

Estou construindo uma página personalizada.

Eu adiciono migalhas de pão como esta (e funciona bem).

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

O problema é o rótulo não traduzido no front-end. Ele mostra em Home / All Brandsvez da versão traduzida.

As coisas que eu tive certeza:

  1. Adicionado translate="label"ao manipulador
  2. Cache limpo (na verdade eu desativei o cache)
  3. A sintaxe da tradução está correta (coloquei em Mage_Core.csv)
  4. O rótulo é traduzido corretamente pelo código php (por exemplo: $helper->__('All Brands');

Ajude-me a descobrir, por favor.

Obrigado.

Tran Dinh Khanh
fonte
11
Ao adicionar translate="label", você também incluiu module="brand_brand"(ou o que deveria ser no seu caso)?
pspahn
<crumbInfo translate="label" module="brand_brand">- Veja: stackoverflow.com/questions/7550429/…
pspahn
Obrigado @pspahn, tento te contar mais tarde. Só um minuto. Obrigado.
Tran Dinh Khanh
No seu link, a resposta diz que If the module attribute is not present, the core module is used.eu adiciono o termo de conversão no Mage_Core.csv no começo, então por que ainda não funciona? Acabei de adicionar o nome do módulo (e o arquivo de tradução do módulo), mas ainda não funciona. Eu continuo inspecionando. Um minuto.
Tran Dinh Khanh

Respostas:

14

Para converter uma migalha sem usar um auxiliar, você pode usar o translateatributo para seu actionnó usando crumbInfo.labele crumbInfo.title.

Exemplo:

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

É a melhor maneira de traduzir migalhas de pão, use ajudantes apenas se você tiver definido um título personalizado, dependendo dos parâmetros de URL ou de qualquer outra coisa.

Frédéric MARTINEZ
fonte
Obrigado Frederic. Simples, mas funciona. Eu tentei no Magento 1.9.1.0
Andhi Irawan
@PeterJaapBlaakmeer Thanks! Sim, eu realmente acho que minha resposta deve ser a resposta aceita. É mais fácil e você não precisa de outro ajudante.
Frédéric MARTINEZ
11
Marquei sua resposta como aceita porque acho mais fácil fazer isso em muitos casos. Obrigado. Sua resposta chegou muito tarde, quando eu a fiz há muito tempo, é por isso que não foi aceita.
Tran Dinh Khanh
3

Observe que você também pode gerar links para trilhas de navegação usando a classe auxiliar.
Usando a classe helper, o bloco XML acima pode se parecer com:

<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 adicione os métodos getHomeUrl()& getBrandUrl()no Helper / Data.php do seu 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')
        );
    }
}
Mago Psico
fonte
Isso funciona muito bem, mas você tem alguma idéia de por que a tradução não funciona se você usar o <crumbInfo><label></label></crumbInfo>caminho?
TimPietrusky
Colocaram minha resposta abaixo, im incapaz de obter a farinha de rosca adequados no meu módulo personalizado
Sushivam
0

Estou tentando o mesmo que abaixo:

no meu arquivo 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(),
    );
}

Estou recebendo apenas:

1) / Receitas / Página Atual

2) Nenhum link da página inicial ...

Sushivam
fonte
Verifique se o nome de suas extensões é "receita", não "magenshop / recipes".
Tran Dinh Khanh