_locale_import_po passing in a file
Line 693 of locale.inc is

$fd = fopen($file-&gt;uri, 'rb');


So you need to provide your file path on the uri member of the file object, instead of/in addition to filepath.

There are a bunch of different things done with that file object throughout the process you're calling, so there may be more you need to add as well.