How can I clone all field values when creating a node translation (entity_translation) programmatically?
I ended up doing it manually via code:

function _populate_translation_values($node, $targetLanguage) {
  $fields = field_info_instances('node', $node-&gt;type);
  foreach($fields as $fieldName=&gt;$fieldInstance) {
    $fieldInfo = field_info_field($fieldName);

    // only process translatable fields
    if (!$fieldInfo['translatable']) continue;

    // ignore fields which are complicated to copy - could be fixed in the future
    if (in_array($fieldInfo['type'], array('field_collection'))) continue;

    // skip fields which already have a value in the target language
    if (isset($node-&gt;{$fieldName}[$targetLanguage])) continue;

    // skip fields which don't have a value in the source language
    if (!isset($node-&gt;{$fieldName}[$node-&gt;language])) continue;

    // copy value
    $node-&gt;{$fieldName}[$targetLanguage] = $node-&gt;{$fieldName}[$node-&gt;language];
  }
}