我重写了一个像这样的控制器:
<frontend>
<routers>
<checkout>
<args>
<modules>
<My_Foo before="Mage_Checkout">My_Foo</My_Foo>
</modules>
</args>
</checkout>
</routers>
Run Code Online (Sandbox Code Playgroud)
我只覆盖一个功能.$this->__('A string');当我在调试器中跟踪它时,控制器的另一个函数(左原始)调用到Mage_Core_Controller_Front_Action::__()转换表达式($expr)是
_text = 'A string',
_module = 'My_Foo'
Run Code Online (Sandbox Code Playgroud)
并且找不到翻译 - 因为它仅在Mage_Checkout.
我认为最好的解决方案是避免控制器重写和使用事件,但这在所有情况下都是不可能的.
是否有任何干净的解决方案 - 除了使用事件 - 将原始翻译保留在覆盖的控制器中?