回答:
これに関するいくつかの情報:
言語はのgetPdf()
メソッドで設定しMage_Sales_Model_Order_Pdf_Invoice
ます。ロケールとストアが無効データに従って設定されていることがわかります。
Mage::app()->getLocale()->emulate($invoice->getStoreId());
Mage::app()->setCurrentStore($invoice->getStoreId());
あなたができることは、この機能を拡張し、おそらく英語の請求書を常に生成する2番目のボタンを管理バックエンドに追加することです。
にemulate()
はストアID が必要です。英語のストアがない場合、これは機能しません。
この場合Mage::app()->getLocale()->emulate($invoice->getStoreId());
、書き換えたメソッドから最初の行を削除しMage::app()->getLocale()->revert();
、関数の最後に戻ってロケールをエミュレーション前の最後のロケールに戻すこともできます。
switch ($invoice->getStoreId()){case 1: $langcode=1; break; case 2: $langcode=1; break; case 3: $langcode=1; break; case 4: $langcode=5; break; } if ($invoice->getStoreId()) { Mage::app()->getLocale()->emulate($langcode);Mage::app()->setCurrentStore($langcode); }