/** * Merge the comments of two translations. * * @param Translation $from * @param Translation $to * @param int $options */ public static function mergeComments(Translation $from, Translation $to, $options = self::DEFAULTS) { if ($options & self::COMMENTS_THEIRS) { $to->deleteComments(); } if (!($options & self::COMMENTS_OURS)) { foreach ($from->getComments() as $comment) { $to->addComment($comment); } } }
/** * Merges this translation with other translation * * @param Translation $translation The translation to merge with * @param integer|null $method One or various Translations::MERGE_* constants to define how to merge the translations */ public function mergeWith(Translation $translation, $method = null) { if ($method === null) { $method = Translations::$mergeDefault; } if (!$this->hasTranslation()) { $this->setTranslation($translation->getTranslation()); } if ($method & Translations::MERGE_PLURAL && !$this->hasPlural()) { $this->setPlural($translation->getPlural()); } if ($this->hasPlural() && !$this->hasPluralTranslation() && $translation->hasPluralTranslation()) { $this->pluralTranslation = $translation->getPluralTranslation(); } if ($method & Translations::MERGE_REFERENCES) { foreach ($translation->getReferences() as $reference) { $this->addReference($reference[0], $reference[1]); } } if ($method & Translations::MERGE_COMMENTS) { $this->comments = array_values(array_unique(array_merge($translation->getComments(), $this->comments))); $this->extractedComments = array_values(array_unique(array_merge($translation->getExtractedComments(), $this->extractedComments))); $this->flags = array_values(array_unique(array_merge($translation->getFlags(), $this->flags))); } }