How to translate "New custom content" in a panel?
First of all, I would like to explain why this doesn't "just work", so that you have been given fair warning before I give you new problems. :)
Consider a custom content pane content like:

Welcome %user:name, you have %field_num_messages new messages waiting.


The text here would be substituted before passed to t(), meaning that for each variation of user and number of messages, you would get an entirely new string to translate. For such panes, go with having two separate panes.

A long term solution is slowly being worked on here: Translatable panel titles: Implement i18n_strings but focuses on the pane titles initially.

Generally speaking, the solution is to avoid custom content panes, but I also realize that using them can be very convenient at times.

Finally, here's a piece of code I've used to "force" pane titles to become translatable. I will attempt to later modify it better to your situation, but I figured having a useful answer quickly was better than not. :) You should be able to use $pane to figure out if this is a custom pane, and then pass the text through t().

/**
 * Implements hook_panels_pane_content_alter().
 */
function HOOK_panels_pane_content_alter($content, $pane, $args, $context) {
  if ($content-&gt;title) {
    $content-&gt;title = t($content-&gt;title);
  }
  return $content;
}