Some information for you on this:
The language is set in the getPdf()
method of Mage_Sales_Model_Order_Pdf_Invoice
. You will see that the locale and store are set according to the invoide data:
Mage::app()->getLocale()->emulate($invoice->getStoreId());
Mage::app()->setCurrentStore($invoice->getStoreId());
What you could do is to extend this functionality and add maybe a second button to your admin-backend which always generate the english invoice.
Be aware that emulate()
needs a store id. If you don't have an english store, this won`t work.
In this case you could try to remove the first line Mage::app()->getLocale()->emulate($invoice->getStoreId());
from your rewritten-method and also the revert back Mage::app()->getLocale()->revert();
at the end of the function which sets the locale back to the last one before emulation.