Dịch không hoạt động trên mẩu bánh mì được thêm bởi xml


8

Tôi đang xây dựng một trang tùy chỉnh.

Tôi thêm vụn bánh mì như thế này (và nó hoạt động tốt).

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

Vấn đề là nhãn không được dịch ở mặt trước. Nó hiển thị Home / All Brandsthay vì phiên bản dịch.

Những điều tôi chắc chắn:

  1. Đã thêm vào translate="label"xử lý
  2. Đã xóa bộ nhớ cache (tình cờ tôi tắt bộ nhớ đệm)
  3. Cú pháp dịch là chính xác (Tôi đặt trong Mage_Core.csv)
  4. Nhãn được dịch đúng bởi mã php (ví dụ: $helper->__('All Brands');

Xin hãy giúp tôi tìm ra nó.

Cảm ơn bạn.


1
Khi thêm translate="label"bạn cũng bao gồm module="brand_brand"(hoặc bất cứ điều gì nó nên có trong trường hợp của bạn)?
pspahn

<crumbInfo translate="label" module="brand_brand">- Xem: stackoverflow.com/questions/7550429/
Mạnh

Cảm ơn bạn @pspahn, tôi cố gắng và nói với bạn sau. Chỉ một phút thôi. Cảm ơn bạn.
Trần Đình Khánh

Trong liên kết của bạn, câu trả lời nói rằng If the module attribute is not present, the core module is used.tôi thêm thuật ngữ dịch trong Mage_Core.csv vào đầu, vậy tại sao nó vẫn không hoạt động? Tôi chỉ thêm tên mô-đun (và cả tệp dịch mô-đun) nhưng nó vẫn không hoạt động. Tôi tiếp tục kiểm tra. Một phút.
Trần Đình Khánh

Câu trả lời:


14

Để dịch vụn mà không sử dụng trình trợ giúp, bạn có thể sử dụng translatethuộc tính cho actionnút của mình bằng cách sử dụng crumbInfo.labelcrumbInfo.title.

Ví dụ:

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

Đó là cách tốt hơn để dịch mẩu bánh mì, chỉ sử dụng người trợ giúp nếu bạn đã đặt tiêu đề tùy chỉnh tùy thuộc vào thông số URL hoặc thứ gì khác.


Cảm ơn Frederic. Đơn giản nhưng nó hoạt động. Tôi đã thử nó trong Magento 1.9.1.0
Andhi I Girls

@PeterJaapBlaakmeer Cảm ơn! Vâng, tôi thực sự nghĩ rằng câu trả lời của tôi nên là câu trả lời được chấp nhận. Nó dễ dàng hơn và bạn không cần một người trợ giúp khác.
Frédéric MARTINEZ

1
Tôi đánh dấu câu trả lời của bạn là được chấp nhận vì tôi thấy nó dễ thực hiện hơn trong nhiều trường hợp. Cảm ơn bạn. Câu trả lời của bạn đến khá muộn khi tôi hoàn thành nó từ lâu, đó là lý do tại sao nó không được chấp nhận.
Trần Đình Khánh

3

Lưu ý rằng bạn cũng có thể tạo liên kết cho mẩu bánh mì bằng lớp trình trợ giúp.
Sử dụng lớp trình trợ giúp, khối XML phía trên có thể trông như sau:

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

Và thêm các phương thức getHomeUrl()& getBrandUrl()trong Helper / Data.php của mô-đun của bạn dưới dạng:

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

Điều này hoạt động khá tốt, nhưng bạn có biết tại sao bản dịch không hoạt động nếu bạn sử dụng <crumbInfo><label></label></crumbInfo>-way không?
TimPietrusky

Đã đăng câu trả lời của tôi dưới đây, tôi không thể có được mẩu bánh mì thích hợp trong mô-đun tùy chỉnh của mình
Sushivam

0

Tôi đang cố gắng giống như dưới đây:

trong tệp xml của tôi:

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

Tôi chỉ nhận được:

1) / Bí quyết / Trang hiện tại

2) Không có liên kết Trang chủ ...


Đảm bảo tên tiện ích mở rộng của bạn là "công thức", không phải "magenshop / công thức".
Trần Đình Khánh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.