Convert pot file to array
The second parameter of _locale_import_read_po() is a Drupal file object, which in Drupal 7 is simply a stdClass object.

The quicker way to use that function and pass a file object as it expects is using code similar to the following one. 

 $po_files = file_scan_directory('./', '^translation\.po$', array('recurse' =&gt; FALSE));
 if (count($po_files)) {
   require_once DRUPAL_ROOT . '/includes/locale.inc';
   $po_file = reset($po_files);
   _locale_import_read_po('db-store', $po_file);
 }


Notice that the second argument of file_scan_directory() is a preg_match() regular expression, not a filename.

Using that code, you don't need to save the file using the file API, which is essentially useless, since there is already a file in the file system.
file_save() stores the file in the database; for a file that is used for a single operation like that, it's not necessary.

I used st() as example for writing the code I shown in this answer.

You could also make the code I show more generic to accept a regular expression and a directory name, and use it to load more files.

function mymodule_import_translations($directory, $pattern) {
  $po_files = file_scan_directory($directory, $pattern, array('recurse' =&gt; FALSE));
  if (count($po_files)) {
    require_once DRUPAL_ROOT . '/includes/locale.inc';
    foreach ($po_files as $po_file) {
      _locale_import_read_po('db-store', $po_file);
    }
  }
}