Save multiple locale data via plugin
I just tried this and it works with Craft 2.3.2636. The only difference is this isn't using ContentModel::setAttributes(), but I wouldn't have thought that would affect it.

$entry = new EntryModel();
$entry-&gt;sectionId   = 2;
$entry-&gt;typeId      = 2;
$entry-&gt;authorId    = 1;
$entry-&gt;enabled     = true;
$entry-&gt;locale      = "en";

$entry-&gt;getContent()-&gt;title       = "English Title";
$entry-&gt;getContent()-&gt;description = "English description.";

if (craft()-&gt;entries-&gt;saveEntry($entry))
{
    $entryEs = craft()-&gt;entries-&gt;getEntryById($entry-&gt;id, "es");

    $entryEs-&gt;getContent()-&gt;title       = "Spanish Title";
    $entryEs-&gt;getContent()-&gt;description = "Spanish description.";

    craft()-&gt;entries-&gt;saveEntry($entryEs);
}