How to ‘manually’ load translations/test domain outside theme context?

Already found out:

load_textdomain('my-text-domain', TEMPLATEPATH . '/languages/'. $my_locale . '.mo');

In some cases it could be useful to restore the previous text domain, so we should make a backup. An old function I had hidden in my code that does all, is this one:

function __2($string, $textdomain, $locale){
  global $l10n;

  if(isset($l10n[$textdomain])) $backup = $l10n[$textdomain];
  load_textdomain($textdomain, get_template_directory() . '/languages/'. $locale . '.mo');
  $translation = __($string,$textdomain);
  if(isset($bkup)) $l10n[$textdomain] = $backup;

  return $translation;
}