转换不适用于xml添加的面包屑


8

我正在建立一个自定义页面。

我像这样添加面包屑(效果很好)。

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

问题是标签未在前端翻译。它显示Home / All Brands而不是翻译的版本。

我确定的事情:

  1. 添加translate="label"到处理程序
  2. 缓存已清除(我确实关闭了缓存)
  3. 翻译语法正确(我放在Mage_Core.csv中)
  4. 标签由php代码正确翻译(例如: $helper->__('All Brands');

请帮我弄清楚。

谢谢。


1
在添加translate="label"时,您是否还包括module="brand_brand"(或您的情况下应包括的内容)?
pspahn

<crumbInfo translate="label" module="brand_brand">-请参阅:stackoverflow.com/questions/7550429/…–
pspahn

谢谢@pspahn,我稍后再尝试告诉您。等一下。谢谢。
Tran Dinh Khanh 2014年

在您的链接中,答案说If the module attribute is not present, the core module is used.我在一开始就在Mage_Core.csv中添加了翻译术语,那么为什么仍然不起作用?我只是添加了模块名称(以及模块转换文件),但仍然无法正常工作。我一直在检查。一分钟。
Tran Dinh Khanh 2014年

Answers:


14

要在不使用帮助程序的情况下转换面包屑,可以通过使用和translate来为action节点使用属性。crumbInfo.labelcrumbInfo.title

范例:

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

这是翻译面包屑,仅在设置了依赖URL参数或其他内容的自定义标题的情况下才使用助手的更好方法。


谢谢弗雷德里克。很简单,但是有效。我已经在Magento 1.9.1.0中尝试过
Andhi Irawan

@PeterJaapBlaakmeer谢谢!是的,我真的认为我的答案应该是被接受的答案。这样比较容易,您不需要其他帮助程序。
弗雷德里克·马丁内斯

1
我将您的答案标记为已接受,因为在很多情况下,我发现这样做比较容易。谢谢。当我很久以前就完成时,您的回答来得太晚了,这就是为什么它不被接受的原因。
Tran Dinh Khanh 2015年

3

请注意,您还可以使用帮助程序类为面包屑生成链接。
使用帮助程序类,上面的XML块可能看起来像:

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

并在模块的Helper / Data.php中将getHomeUrl()getBrandUrl()方法添加为:

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

这很好用,但是您对使用<crumbInfo><label></label></crumbInfo>-way 为何翻译不起作用有任何想法吗?
2014年

在下面发布了我的答案,即时通讯无法在我的自定义模块中获得正确的面包屑
Sushivam,2016年

0

我正在尝试与以下相同:

在我的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(),
    );
}

我只得到:

1)/食谱/当前页

2)没有主页链接...


确保扩展名是“ recipe”,而不是“ magenshop / recipe”。
Tran Dinh Khanh,2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.