public static function copyTranslations($objectID, $versionNum)
{
$object = eZContentObject::fetch($objectID);
if (!$object instanceof eZContentObject) {
return array('status' => eZModuleOperationInfo::STATUS_CANCELLED);
}
$publishedVersionNum = $object->attribute('current_version');
if (!$publishedVersionNum) {
return;
}
$publishedVersion = $object->version($publishedVersionNum);
$publishedVersionTranslations = $publishedVersion->translations();
$publishedLanguages = eZContentLanguage::languagesByMask($object->attribute('language_mask'));
$publishedLanguageCodes = array_keys($publishedLanguages);
$version = $object->version($versionNum);
$versionTranslationList = array_keys(eZContentLanguage::languagesByMask($version->attribute('language_mask')));
foreach ($publishedVersionTranslations as $translation) {
$translationLanguageCode = $translation->attribute('language_code');
if (in_array($translationLanguageCode, $versionTranslationList) || !in_array($translationLanguageCode, $publishedLanguageCodes)) {
continue;
}
foreach ($translation->objectAttributes() as $attribute) {
$clonedAttribute = $attribute->cloneContentObjectAttribute($versionNum, $publishedVersionNum, $objectID);
$clonedAttribute->sync();
}
}
$version->updateLanguageMask();
}