public function saveTranslation(Translation $translation) { // Fetch the related unit $propelUnit = UnitQuery::create()->findOneByDomainAndKey($translation->getUnit()->getDomain(), $translation->getUnit()->getKey()); // Retrived or create the translation $propelTranslationToUpdate = null; foreach ($propelUnit->getTranslations() as $propelTranslation) { if ($propelTranslation->getLocale() == $translation->getLocale()) { $propelTranslationToUpdate = $propelTranslation; break; } } if ($propelTranslationToUpdate === null) { $propelTranslationToUpdate = new PropelTranslation(); $propelTranslationToUpdate->setUnitId($propelUnit->getId()); } // Update and save $propelTranslationToUpdate->updateFromModel($translation); $propelTranslationToUpdate->save(); }