Loading entity_xliff.admin.inc +1 −4 Original line number Diff line number Diff line Loading @@ -97,13 +97,10 @@ function entity_xliff_actions_submit($form, &$form_state) { $type = $form_state['build_info']['args'][0]; $entity = $form_state['build_info']['args'][1]; $wrapper = entity_metadata_wrapper($type, $entity); $translatable = entity_xliff_get_translatable($wrapper); foreach ($form_state['storage']['import'] as $langcode => $file) { $sourceLang = $translatable->getSourceLanguage(); $serializer = entity_xliff_get_serializer($sourceLang); $xliff = file_get_contents($file->uri); $data = $serializer->unserialize($translatable, $langcode, $xliff); $data = entity_xliff_set_xliff($wrapper, $langcode, $xliff); // If no data was returned, the import was invalid. if ($data === array()) { Loading entity_xliff.module +63 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,69 @@ use EggsCereal\Serializer; use EntityXliff\Drupal\Factories\EntityTranslatableFactory; /** * Takes an Entity API wrapped entity and returns XLIFF XML data that represents * it. This data can be used by localization software, a TMS, or a text editor * to edit translations of this entity. * * @param \EntityDrupalWrapper $wrapper * The entity metadata wrapper for which you want an XLIFF. * * @param string $targetLanguage * Target language you want the XLIFF to represent. Should be the Drupal * language code. * * @return string * XLIFF XML data representing the given entity. If the given entity isn't * translatable, an empty string is returned. */ function entity_xliff_get_xliff($wrapper, $targetLanguage) { $xliff = ''; if ($translatable = entity_xliff_get_translatable($wrapper)) { $serializer = entity_xliff_get_serializer($translatable->getSourceLanguage()); $xliff = $serializer->serialize($translatable, $targetLanguage); drupal_alter('entity_xliff_get_xliff', $xliff, $wrapper, $targetLanguage); } return $xliff; } /** * Takes XLIFF data representing an entity and creates the translation that it * represents. * * @param \EntityDrupalWrapper $wrapper * The entity metadata wrapper of the entity for whose translation you're * importing. * * @param string $targetLanguage * Target language the XLIFF represents. Should be a Drupal language code. * * @param string $xliff * A string of the XLIFF XML. * * @param bool $save * (Optional) Whether or not to actually set and save the underlying data to * the database. Defaults to TRUE. * * @return array * An associative array representing the translation data. If the returned * array is empty, it means the XLIFF unserialization process failed. */ function entity_xliff_set_xliff($wrapper, $targetLanguage, $xliff, $save = TRUE) { $data = array(); if ($translatable = entity_xliff_get_translatable($wrapper)) { $serializer = entity_xliff_get_serializer($translatable->getSourceLanguage()); drupal_alter('entity_xliff_set_xliff', $xliff, $wrapper, $targetLanguage); $data = $serializer->unserialize($translatable, $targetLanguage, $xliff, $save); } return $data; } /** * Implements hook_menu(). */ Loading entity_xliff.pages.inc +2 −4 Original line number Diff line number Diff line Loading @@ -44,11 +44,9 @@ function entity_xliff_to_xlf($type, $entity) { $wrapper = entity_metadata_wrapper($type, $entity); $targetlang = entity_xliff_get_target_lang(); if ($translatable = entity_xliff_get_translatable($wrapper)) { $sourceLang = $translatable->getSourceLanguage(); $serializer = entity_xliff_get_serializer($sourceLang); if ($xliff = entity_xliff_get_xliff($wrapper, $targetlang)) { entity_xliff_file_name(implode('-', array($type, $wrapper->getIdentifier(), $targetlang)) . '.xlf'); return $serializer->serialize($translatable, $targetlang); return $xliff; } else { return MENU_NOT_FOUND; Loading src/Drupal/Translatable/EntityFieldTranslatableBase.php +2 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,8 @@ abstract class EntityFieldTranslatableBase extends EntityTranslatableBase { $rawEntity = $this->entity->raw(); $type = $this->entity->type(); $handler = $this->drupal->entityTranslationGetHandler($type, $rawEntity); return $handler->getLanguage(); $language = $handler->getLanguage(); return $language; } /** Loading Loading
entity_xliff.admin.inc +1 −4 Original line number Diff line number Diff line Loading @@ -97,13 +97,10 @@ function entity_xliff_actions_submit($form, &$form_state) { $type = $form_state['build_info']['args'][0]; $entity = $form_state['build_info']['args'][1]; $wrapper = entity_metadata_wrapper($type, $entity); $translatable = entity_xliff_get_translatable($wrapper); foreach ($form_state['storage']['import'] as $langcode => $file) { $sourceLang = $translatable->getSourceLanguage(); $serializer = entity_xliff_get_serializer($sourceLang); $xliff = file_get_contents($file->uri); $data = $serializer->unserialize($translatable, $langcode, $xliff); $data = entity_xliff_set_xliff($wrapper, $langcode, $xliff); // If no data was returned, the import was invalid. if ($data === array()) { Loading
entity_xliff.module +63 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,69 @@ use EggsCereal\Serializer; use EntityXliff\Drupal\Factories\EntityTranslatableFactory; /** * Takes an Entity API wrapped entity and returns XLIFF XML data that represents * it. This data can be used by localization software, a TMS, or a text editor * to edit translations of this entity. * * @param \EntityDrupalWrapper $wrapper * The entity metadata wrapper for which you want an XLIFF. * * @param string $targetLanguage * Target language you want the XLIFF to represent. Should be the Drupal * language code. * * @return string * XLIFF XML data representing the given entity. If the given entity isn't * translatable, an empty string is returned. */ function entity_xliff_get_xliff($wrapper, $targetLanguage) { $xliff = ''; if ($translatable = entity_xliff_get_translatable($wrapper)) { $serializer = entity_xliff_get_serializer($translatable->getSourceLanguage()); $xliff = $serializer->serialize($translatable, $targetLanguage); drupal_alter('entity_xliff_get_xliff', $xliff, $wrapper, $targetLanguage); } return $xliff; } /** * Takes XLIFF data representing an entity and creates the translation that it * represents. * * @param \EntityDrupalWrapper $wrapper * The entity metadata wrapper of the entity for whose translation you're * importing. * * @param string $targetLanguage * Target language the XLIFF represents. Should be a Drupal language code. * * @param string $xliff * A string of the XLIFF XML. * * @param bool $save * (Optional) Whether or not to actually set and save the underlying data to * the database. Defaults to TRUE. * * @return array * An associative array representing the translation data. If the returned * array is empty, it means the XLIFF unserialization process failed. */ function entity_xliff_set_xliff($wrapper, $targetLanguage, $xliff, $save = TRUE) { $data = array(); if ($translatable = entity_xliff_get_translatable($wrapper)) { $serializer = entity_xliff_get_serializer($translatable->getSourceLanguage()); drupal_alter('entity_xliff_set_xliff', $xliff, $wrapper, $targetLanguage); $data = $serializer->unserialize($translatable, $targetLanguage, $xliff, $save); } return $data; } /** * Implements hook_menu(). */ Loading
entity_xliff.pages.inc +2 −4 Original line number Diff line number Diff line Loading @@ -44,11 +44,9 @@ function entity_xliff_to_xlf($type, $entity) { $wrapper = entity_metadata_wrapper($type, $entity); $targetlang = entity_xliff_get_target_lang(); if ($translatable = entity_xliff_get_translatable($wrapper)) { $sourceLang = $translatable->getSourceLanguage(); $serializer = entity_xliff_get_serializer($sourceLang); if ($xliff = entity_xliff_get_xliff($wrapper, $targetlang)) { entity_xliff_file_name(implode('-', array($type, $wrapper->getIdentifier(), $targetlang)) . '.xlf'); return $serializer->serialize($translatable, $targetlang); return $xliff; } else { return MENU_NOT_FOUND; Loading
src/Drupal/Translatable/EntityFieldTranslatableBase.php +2 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,8 @@ abstract class EntityFieldTranslatableBase extends EntityTranslatableBase { $rawEntity = $this->entity->raw(); $type = $this->entity->type(); $handler = $this->drupal->entityTranslationGetHandler($type, $rawEntity); return $handler->getLanguage(); $language = $handler->getLanguage(); return $language; } /** Loading