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

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

@pspahnに感謝します。後で説明します。ちょっと待って。ありがとうございました。
トランディンカーン2014年

あなたのリンクでは、答えはIf the module attribute is not present, the core module is used.私が最初にMage_Core.csvに翻訳用語を追加することを言っています、それでなぜまだ動かないのですか?モジュール名(およびモジュール変換ファイルも)を追加するだけですが、それでも機能しません。私は調べ続けます。一分。
トランディンカーン2014年

回答:


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で試しました
Irawan

@PeterJaapBlaakmeerありがとうございます!はい、私は私の答えが受け入れられた答えであるべきだと本当に思っています。それはより簡単で、あなたは別のヘルパーを必要としません。
フレデリックマルティネス2015

1
私は多くの場合簡単にできると思うので、あなたの答えを受け入れられたとマークしました。ありがとうございました。あなたの答えは、私がずっと前にそれを成し遂げたときにかなり遅れて来ました、それがそれが受け入れられたものではなかった理由です。
Tran Dinh Khanh、

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 を使用すると翻訳が機能しない理由について何か考えがありますか?
TimPietrusky 2014

以下に私の回答を投稿しました。カスタムモジュールで適切なパンくずリストを取得できません
Sushivam '25 / 12/25

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)/ Recipes / Current Page

2)ホームページへのリンクがない...


拡張機能の名前が「レシピ」であり、「magenshop / recipe」ではないことを確認してください。
トランディンカーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.