如何以编程方式翻译 Drupal Bean?

How to translate a Drupal Bean programmatically?

我找遍了所有地方,但找不到翻译 bean 的方法。他们依赖 entity_translation,但这似乎不起作用:

$form_state['build_info']['args'] = array (  0 => $bean );
$form_state['form_id'] = 'bean_form';
$form_state['entity_translation'] = array(
    'form_langcode' => $newLangcode,
    'source_langcode' => 'en',
    'is_translation' => 1,
);

drupal_form_submit('bean_form', $form_state);

它什么也没做。有什么想法我可能会遗漏吗?还是有比尝试提交表单更好的方法?

我的尝试基本上只是试图模仿此页面上发生的事情:

/block/MY_BLOCK/edit/add/en/es

我花了很长时间才找到这个:

$translation = array(
    'translate' => 0,
    'status' => 1,
    'language' => $langCode, // here is the language you're translating to
    'source' => 'en', 
);
$bean = bean_load($bid); 
$handler = entity_translation_get_handler('bean', $bean);
$values = array (
    // i add the default values here, but you can add whatever you want
);

$handler->setTranslation($translation, $values);
bean_save($bean);