コントローラーを次のように書き直します。
<frontend>
<routers>
<checkout>
<args>
<modules>
<My_Foo before="Mage_Checkout">My_Foo</My_Foo>
</modules>
</args>
</checkout>
</routers>
1つの関数のみを上書きします。$this->__('A string');
デバッガーでこれを追跡すると、コントローラーの別の関数 (元の左) が呼び出されMage_Core_Controller_Front_Action::__()
、変換式 ( $expr
) が呼び出されます。
_text = 'A string',
_module = 'My_Foo'
でしか利用できないため、翻訳が見つかりませんMage_Checkout
。
コントローラーの書き換えを避けてイベントを使用するのが最善の解決策だと思いますが、これはすべての場合に可能というわけではありません。
イベントを使用する以外に、元の翻訳を上書きされたコントローラー内に保持するためのクリーンなソリューションはありますか?